4. Desarrollo Reporte de Avance
7.1. Logros: marco de trabajo teórico/práctico
Este proyecto final ha cumplido aportado al conocimiento del software libre con un análisis crítico, amplio y exhaustivo de la bibliografía (marco teórico), intentando elaborar una contribución sustantiva para su abordaje (herramienta) junto a la metodología utilizada para llevarlo a cabo.
El objetivo principal de esta investigación fue implementar un marco de trabajo teórico/práctico para la creación y mantenimiento ágil de software libre, orientado al desarrollo de aplicaciones empresariales centradas en datos.
Si bien dicho eje conductor motivador de la investigación es amplio, dado que contemplaba una etapa exploratoria inicial, en principio estaría cubierto gracias a los argumentos expuestos y los artefactos de software diseñados, habiendo realizado una prueba de concepto para validarlo. En resumen, la solución propuesta en esta investigación ha consistido en: ● Integrar y mejorar herramientas para desarrollo rápido (simples, poderosas y de fácil uso). ● Utilizar bibliotecas livianas y marcos de trabajo concretos y concisos (e incrementales). ● Enfocar en tareas el proceso a nivel de programadores individuales (basado en el PSP). ● Incluir mecanismos de control y planificación apropiados (con datos empíricos/estadísticos). ● Reducir la sobrecarga de trabajo automatizando la recolección de métricas y seguimiento de
líneas de código (para la gestión de contextos, necesarios para el enfoque en tareas)
Con ello se han elaborado las siguientes propuestas y consideraciones respecto al desarrollo rápido de software libre, con la meta de brindar un acercamiento hacia una “bala de plata” para la ingeniería de software (relacionada a las problemáticas presentadas en esta investigación):
● Facilitar la concurrencia y viabilidad aún en grupos reducidos, en particular promoviendo una mayor participación de principiantes, en pos de una mayor diversidad sustentable. ● Propiciar un mercado más horizontal y diverso (prosumidores), tendiente a que un mayor
número de usuarios se conviertan en desarrolladores; no solo para que puedan probar e identificar defectos, sino también para que puedan proveer soluciones.
● Motivar a los desarrolladores visibilizando el trabajo más rápidamente (por ej., apoyado en herramientas visuales de diseño y seguimiento).
● Reconciliar las mejores prácticas de la industria (RAD/PSP), ayudando a definir lineamientos para limitar la complejidad y estrategias para incrementar la modularidad. ● Facilitar el mantenimiento y toma de decisiones de arquitectura, intentando disminuir los
conflictos / discusiones internas de las comunidades (posibilitando análisis cuantitativos). ● Mejorar las oportunidades comerciales (proveyendo herramientas actualizadas y
sustentables), minimizando incertidumbres (riesgos, planificación, calidad, etc.).
● Cubrir determinadas necesidades insatisfechas de mercado (especialmente relativas a aplicaciones transaccionales empresariales centradas en datos, de escritorio y similares).
7.2. Relevancia
Este estudio busca reactivar y completar áreas de desarrollo rápido de software libre que están desatendidas por los proyectos actuales (vb2py tiene 10 años de inactividad , y otras herramientas 189 RAD como PythonCard , WinPDB 190 191 o Boa Constructor 192 han tenido la misma suerte, y/o no ha
189 http://vb2py.sourceforge.net/news.htm última liberacion: 2004
190 http://pythoncard.cvs.sourceforge.net/viewvc/pythoncard/PythonCard/ ultimo cambio: circa 2006 191 https://code.google.com/p/winpdb/source/list último cambio al repositorio: 2011
habido interés en integrar y mantener una solución). Esto puede deberse a muchos preconceptos
negativos sobre la calidad del modelo de desarrollo rápido, falencias de lenguajes previos como
VisualBasic, complejidad excesiva o simplemente por obsolescencia . 193 Por ello, para esta investigación se plantea otro enfoque superador, más simple y mantenible,
siguiendo las buenas prácticas de la ingeniería de software, simplificado a nivel personal,
adaptándolo a investigaciones modernas (por ej. interfaces enfocadas en tareas), con
funcionalidades actualizadas (por ej. con herramientas de diseño y depuración tanto para desarrollos
GUI, WEB, y para dispositivos móviles a futuro) Además, para disminuir la carga de trabajo y asistir al desarrollador, se proponen ideas originales
para resolver varios temas generales como la correcta recolección de métricas de manera
automatizada (por ej. vía cámara web para constatar los tiempos inactivos), y el seguimiento de las
líneas de código fuente (identificándolas con UUID) para elaborar un contexto simplificado y
relevante.
7.3. Limitaciones
Dado que los datos recolectados han sido acotados, los resultados no pueden generalizarse (en partetambién debido a la metodología de InvestigaciónAcción desarrollada). Igualmente, la herramienta
diseñada en sí permitirá obtener mayor cantidad de datos cuantitativos, si se realizan futuras
investigaciones sobre casos más extensos como docencia u otros ámbitos empresariales, para poder
extraer conclusiones más detalladas y generalizables. También habrá que evaluar a futuro la participación e impacto que logra en la comunidad de
software libre, para que pueda difundirse y extenderse a niveles que aseguren su sustentabilidad a
largo plazo. Por ej, más allá del proyecto wxPython, se intentó continuar con el mantenimiento y
modernizar la biblioteca relacionada PythonCard, sin mayor éxito hasta el momento . Por otra 194
parte, el anuncio reciente de la versión experimental de la herramienta desarrollada en este
proyecto, ha despertado cierto interés en el foro 195 y redes sociales, cuestión que podría ser
alentadora para continuar el desarrollo de la misma.
7.4. Futuras líneas de investigación
Dados los ajustes a la planificación, se excluyó el tema de migración de código legado vía EBNF.Esto podría agregarse a futuro integrando a las herramientas desarrolladas y proseguir con la
investigación sobre mantenibilidad y evolución de software (principalmente en el caso de sistemas
heredados migrados a software libre). También la recolección de métricas y metadatos posible con la herramienta desarrollada en este
trabajo, permitiría compartir y distribuir dicha información para extender la investigación a otros
sectores con un mayor sustento cuantitativo empírico. En este sentido, se abrirían varias posibilidades para estudiar temáticas como patrones de edición,
ayuda al desarrollador, entre otras, incluyendo a su vez, investigaciones sobre la implicancia de seguridad y privacidad de las técnicas expuestas en este trabajo.
192 http://sourceforge.net/p/boaconstructor/news/ última novedad: 2006
193 http://www.reddit.com/r/Python/comments/29ds46/why_are_there_no_python_rad_type_ide_guis/ 194 http://sourceforge.net/p/pythoncard/mailman/message/31332723/
Referencias
1. Agarwal K., Agarwal A., and Hiller, C. (2013). Rapid applications development in Python .
Journal of Computer Sciences in Colleges. 28, 4. April 2013, 4248.
2. Bacchelli A., Ponzanelli L., Lanza M. (2012) Harnessing Stack Overflow for the IDE.
REVEAL @ Faculty of Informatics University of Lugano, Switzerland. Third International Workshop on Recommendation Systems for Software Engineering (RSSE). Zurich, 44 June 2012. 196
3. Bessen J (2006). Open Source Software: Free Provision of Complex Public Goods . In J.
Bitzer and P.J.H. Schröder (Eds.) The economics of Open Source Software Development (pp.1555). Amsterdam. Elsevier. ISBN 9780444527691 197
4. Bland M. (2014). Finding More Than One Worm in the Apple. ACM Queue 12, 5, pages 10
(May 2014), DOI=10.1145/2620660.2620662
5. Chaiyo Y., Ramingwong S. (2013) The Development of a Design Tool for Personal Software
Process (PSP) . 10th International Conference on Electrical Engineering/Electronics, Computer, Telecommunications and Information Technology (ECTICON), IEEE. Krabi, 1517 May 2013. ISBN: 9781479905461. pp. 14. doi: 10.1109/ECTICon.2013.6559562
6. Choi H.J., SangHun L., Syed A., Ahmad I., HyunIl S. and YoungKyu P. (2013) Towards an
Integrated Personal Software Process and Team Software Process Supporting Tool. Software Process Improvement and Management: Approaches and Tools for Practical Development. IGI Global, 2012. 205223. Web. 5 Dec. 2013. doi: 10.4018/9781613501412.ch010
7. ElRamly M., Eltayeb R., & Alla H.A. (2006) An Experiment in Automatic Conversion of
Legacy Java Programs to C# . IEEE International Conference on Computer Systems and Applications. March 8, 2006. (pp. 10371045). doi: 10.1109/AICCSA.2006.205215
8. Feller J. & Fitzgerald B. (2002) Understanding Open Source software development.
AddisonWesley Professional. UK. ISBN 9780201734966
9. Glass R.L. (2008) Two Mistakes and ErrorFree Software: A Confession. IEEE Software,
vol.25, no.4, pp.96,96, JulyAug. 2008 doi: 10.1109/MS.2008.102
10.Glass R.L. (2000) "The Sociology of Open Source: Of Cults and Cultures," IEEE Software,
vol. 17, no. 3, pp. 104105, MayJune 2000, doi: 10.1109/MS.2000.10027 198
11.Goth G. (2009). The TaskBased Interface: Not Your Father's Desktop . IEEE Software,
Volume: 26 Issue 6), 8891. doi:10.1109/MS.2009.191 199
12.Hang J., Hohensohn H., Mayr K., Wieland T. (2005) Benefits and Pitfalls of Open Source in
Commercial Contexts . In Koch, S. Free/Open Source Software Development (pp.126) Idea Group Publishing. Hershey, Pensilvania. EE.UU. ISBN 1591403693 200
13.Holck J. & Jørgensen N. (2005) Do Not Check in on red: Control Meets Anarchy in Two
Open Source Projects . In Koch, S. Free/Open Source Software Development (pp.222239) Idea Group Publishing. Hershey, Pensilvania. EE.UU. ISBN 1591403693 201
14.Lugo Garcia J.A., Garcia Perez A.M. (2011) Colección automática de métricas hacia un
repositorio de mediciones . Revista Facultad de Ingeniería Universidad de Antioquia. 2011, n.58, pp. 199207 . ISSN 01206230. 202 196 http://sback.it/publications/rsse2012.pdf 197 http://www.researchoninnovation.org/opensrc.pdf 198 http://www.computer.org/csdl/mags/so/2000/03/s3104.pdf 199 http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=05287017 200 https://www.academia.edu/2732160/Free_open_source_software_development 201 https://www.academia.edu/2732160/Free_open_source_software_development 202 http://www.redalyc.org/pdf/430/43021467021.pdf
15.Asaduzzaman M., Roy C. K. , Schneider K. A. (2013) LHDiff: A LanguageIndependent
Hybrid Approach for Tracking Source Code Lines. Software Maintenance (ICSM), 2013
29th IEEE International Conference on; vol., no., pp.230,239, 2228 Sept. 2013 doi:
10.1109/ICSM.2013.34 203
16.Mon A., De María E., Estayno M., Serra D. (2011) Mejora de procesos para Pymes de
software. Grupo de Ingeniería de Software (G.I.S.) Departamento de Ingeniería/Universidad
Nacional de La Matanza. Facultad de Ingeniería/Universidad Nacional de Lomas de Zamora.
XIII Workshop de Investigadores en Ciencias de la Computación. Mayo 2011. ISBN:
9789506738921. pp. 634638. 204 17.Murphy G.C., Kersten M., Findlater L. (2006) How are Java software developers are using
the Eclipse IDE? IEEE Software article, (c) IEEE (2006) Volume: 23, Issue: 4 pp 76 83. doi:
10.1109/MS.2006.105 205 18.Rong G., Shao D.; Zhang H. (2010) SCRUMPSP: Embracing Process Agility and Discipline .
17th Asia Pacific Software Engineering Conference (APSEC), IEEE. Sydney, NSW, Nov. 30
2010Dec. 3 2010. pp.316325. doi: 10.1109/APSEC.2010.44 206 19.Rossi, M (2006). Decoding the Free/OpenSource Software Puzzle: A Survey of Theoretical
and Empirical Contributuions . In J. Bitzer and P.J.H. Schröder (Eds.) The economics of
Open Source Software Development (pp.1555). Amsterdam. Elsevier. ISBN 9780444527691
207 20.Zhang F., Khomh, F., Zou Y., Hassan A.E. (2012) An Empirical Study of the Effect of File
Editing Patterns on Software Quality . 19th Working Conference on Reverse Engineering
(WCRE), IEEE. Kingston, ON 1518 Oct. 2012. ISSN:10951350. pp. 456 465. doi:
10.1109/WCRE.2012.55 21.Paulson J.W.; Succi G.; Eberlein A. (2004) An empirical study of opensource and
closedsource software products. IEEE Transactions on Software Engineering, vol.30, n.4,
pp.246,256, Apr 2004 208 22.Samoladas I., Gousios G., Spinellis D., Stamelos I. (2008) The SQOOSS quality model:
measurementbased open source software evaluation. In Ernesto Damiani and Giancarlo
Succi, editors, Open Source Development, Communities and Quality — OSS 2008: 4th
International Conference on Open Source Systems, pages 237–248. IFIP 20th World Computer
Congress, Working Group 2.3 on Open Source Software, September 2008. (doi:10.1007/9780387 096841) . Springer. 23.Schmidt, B., Reinhardt, W. (2009) Task Patterns to support taskcentric Social Software
Engineering. 3rd International Workshop on Social Information Retrieval for TechnologyEnhanced Learning &&**495. Aachen, Germany, August 21, 2009. 209 24.Sunindyo W., Moser T., Winkler D., Dhungana D. (2012) Improving Open Source Software
Process Quality Based on Defect Data Mining. 4th International Conference, SWQD 2012,
Vienna, Austria, January 1719, 2012. Proceedings. pp 84102. Springer Berlin Heidelberg.
ISBN 9783642272127 25.Weinstock C., Place P., Hissam S., Plakosh D. (2000) A Discussion of Open Source Software.
News at SEI on: March 1, 2000. Software Engineering Institute. Carnegie Mellon University 210 Nota: Los sitios web han sido consultados entre Febrero de 2014 y Enero de 2015. 203 http://www.cs.usask.ca/~croy/papers/2013/LHDiffFullPaperpreprint.pdf 204 http://hdl.handle.net/10915/20141 205 http://www.tasktop.com/pdfs/docs/publications/2006ieeeeclipseusage.pdf 206 http://www.nicta.com.au/pub?doc=4164 207 http://www.econpol.unisi.it/quaderni/424.pdf 208 http://www.enel.ucalgary.ca/People/eberlein/publicalección dtions/01274044.pdf 209 http://ceurws.org/Vol535/Schmidt_Reinhardt_SIRTEL09.pdf 210 http://www.sei.cmu.edu/library/abstracts/newsatsei/roundtablemar00.cfm
Licencia
© 2014 2015, Mariano Reingart <[email protected]>
Esta obra está bajo una Licencia Creative Commons AtribuciónCompartirIgual 3.0 Unported. Para ver una copia de la licencia, visite http://creativecommons.org/licenses/bysa/3.0/ o envíe una