Modelagem Interativa de um Processo de Desenvolvimento com Base na Percepção da Equipe: Um Relato de Experiência
Resumo
A modelagem do processo de desenvolvimento de software é importante para permitir um melhor entendimento desse processo, bem como a identificação de possíveis melhorias. Em um projeto de PDI, realizado em parceria entre um grupo de pesquisa de uma universidade federal brasileira e uma fabricante de celulares, uma melhoria do processo de desenvolvimento de software distanciou a versão do processo documentada da versão usada na prática. Para sincronizar essa documentação com o processo que estava sendo utilizado, aplicou-se uma abordagem interativa com base na observação das atividades conduzidas no projeto, na análise de documentos existentes, em reuniões com o gerente do projeto e em entrevistas com o time de desenvolvimento. Este artigo apresenta um relato da experiência do uso desta abordagem, descrevendo as lições aprendidas e a percepção da equipe quanto ao processo utilizado.
Referências
E. Andreasen and A. Møller. Determinacy in static analysis for jQuery. In ACM SIGPLAN Notices, volume 49, pages 17–31. ACM, 2014.
S. Bae, H. Cho, I. Lim, and S. Ryu. SAFEWAPI: Web API misuse detector for web applications. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, pages 507–517. ACM, 2014.
M. Eernisse. Build Your Own AJAX Web Applications. SitePoint Pty Ltd, 2006.
A. M. Fard and A. Mesbah. JSNOSE: Detecting JavaScript code smells. In IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM-2013), pages 116–125, 2013.
L. Gong, M. Pradel, M. Sridharan, and K. Sen. DLint: Dynamically checking bad coding practices in JavaScript. In Proceedings of the 2015 International Symposium on Software Testing and Analysis, pages 94–105. ACM, 2015.
S. Guarnieri and V. B. Livshits. GATEKEEPER: Mostly static enforcement of security and reliability policies for JavaScript code. In USENIX Security Symposium, volume 10, pages 78–85, 2009.
Q. Hanam, F. S. d. M. Brito, and A. Mesbah. Discovering bug patterns in JavaScript. In Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pages 144–156. ACM, 2016.
C.-H. Hsiao, M. Cafarella, and S. Narayanasamy. Using web corpus statistics for program analysis. In ACM SIGPLAN Notices, volume 49, pages 49–65. ACM, 2014.
S. H. Jensen, M. Madsen, and A. Møller. Modeling the HTML DOM and browser API in static analysis of JavaScript web applications. In Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering, pages 59–69. ACM, 2011.
S. H. Jensen, A. Møller, and P. Thiemann. Type analysis for JavaScript. In International Static Analysis Symposium, pages 238–255. Springer, 2009.
V. Kashyap, K. Dewey, E. A. Kuefner, J. Wagner, K. Gibbons, J. Sarracino, B. Wiedermann, and B. Hardekopf. JSAI: A static analysis platform for JavaScript. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, pages 121–132, 2014.
V. Kashyap, J. Sarracino, J. Wagner, B. Wiedermann, and B. Hardekopf. Type refinement for static analysis of JavaScript. In ACM SIGPLAN Notices, volume 49, pages 17–26. ACM, 2013.
A. J. Ko and J. O. Wobbrock. Cleanroom: Edit-time error detection with the uniqueness heuristic. In IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), pages 7–14. IEEE, 2010.
A. J. Ko and X. Zhang. Feedlack detects missing feedback in web applications. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, pages 2177–2186. ACM, 2011.
V. I. Levenshtein. Binary codes capable of correcting deletions, insertions, and reversals. In Soviet physics doklady, volume 10, pages 707–710, 1966.
A. Y. Levy, A. Rajaraman, and J. J. Ordille. Query-answering algorithms for information agents. In Thirteenth National Conference on Artificial Intelligence, pages 40–47. AAAI, 1996.
G. Liang, J. Wang, S. Li, and R. Chang. Patbugs: A pattern-based bug detector for cross-platform mobile applications. In IEEE International Conference on Mobile Services (MS-2014), pages 84–91. IEEE, 2014.
M. Madsen, B. Livshits, and M. Fanning. Practical static analysis of JavaScript applications in the presence of frameworks and libraries. In Proceedings of the 9th Joint Meeting on Foundations of Software Engineering, pages 499–509. ACM, 2013.
M. Madsen, F. Tip, and O. Lhot´ak. Static analysis of event-driven node. js JavaScript applications. In ACM SIGPLAN Notices, volume 50, pages 505–519, 2015.
A. Mesbah, A. Van Deursen, and S. Lenselink. Crawling ajax-based web applications through dynamic analysis of user interface state changes. ACM Transactions on the Web (TWEB), 6(1):3, 2012.
F. Ocariza, K. Bajaj, K. Pattabiraman, and A. Mesbah. An empirical study of client-side JavaScript bugs. In 2013 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, pages 55–64. IEEE, 2013.
F. S. Ocariza. On the detection, localization and repair of client-side JavaScript faults. PhD thesis, University of British Columbia, 2016.
F. S. Ocariza, G. Li, K. Pattabiraman, and A. Mesbah. Automatic fault localization for client-side JavaScript. Software Testing, Verification and Reliability, 26(1):69–88, 2016.
F. S. Ocariza Jr, K. Pattabiraman, and A. Mesbah. Autoflox: An automatic fault localizer for client-side JavaScript. In IEEE Fifth International Conference on Software Testing, Verification and Validation (ICST-2012), pages 31–40. IEEE, 2012.
F. S. Ocariza Jr, K. Pattabiraman, and A. Mesbah. Vejovis: Suggesting fixes for JavaScript faults. In Proceedings of the 36th International Conference on Software Engineering, pages 837–847. ACM, 2014.
C. Park, S. Won, J. Jin, and S. Ryu. Static analysis of JavaScript web applications in the wild via practical DOM modeling (t). In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE-2015), pages 552–562. IEEE, 2015.
J. Park. JavaScript API misuse detection by using typescript. In Proceedings of the companion publication of the 13th international conference on Modularity, pages 11–12. ACM, 2014.
A. Younang and L. Lu. Improving precision of Java Script program analysis with an extended domain of intervals. In IEEE 39th Annual Computer Software and Applications Conference (COMPSAC-2015), volume 3, pages 441–446. IEEE, 2015.
Y. Zheng, T. Bao, and X. Zhang. Statically locating web application bugs caused by asynchronous calls. In Proceedings of the 20th International Conference on World Wide Web, pages 805–814. ACM, 2011.