• Aucun résultat trouvé

llllllillililillil!!I~liliiiil

Dans le document PROGRAMMING MANUAL for the (Page 176-189)

Como trabalhos futuros, algumas sugestões de melhorias na abordagem proposta são apresentadas a seguir

• Visualização de possíveis impactos na forma de grafos:Atualmente o relatório de possíveis conflitos indiretos apresenta uma lista de possíveis artefatos impactados por um determinado commit, bem como os casos de uso vinculados a estes artefatos. A apresentação desse mesmo relatório na forma de um grafo explicaria de forma mais clara ao usuário como se deu o conflito indireto entre os artefatos modificados e os artefatos informados no relatório.

• Condução de novos estudos empíricos em fase de desenvolvimento: O experimento empírico apresentado no estudo realizado para análise da ferramenta avaliou commits relacionados com manutenções corretivas do software analisado. Um novo estudo empírico realizando a análise do software ainda na fase de de- senvolvimento, analisando softwares de outros domínios assim como outros tipos de manutenções de evolução e adaptação do software, reforçaria a relevância dos resultados apresentados no estudo conduzido neste trabalho.

• Otimização de sincronização da ferramenta: Ao cadastrar um projeto na fer- ramenta para que o mesmo seja avaliado, é necessário que todo o histórico desse projeto no repositório de software seja processado pelo CodeTrack e que seja gerado o call graph do projeto analisado. Esse processo pode demorar caso o projeto anali- sado possua uma grande quantidade de artefatos e caso o histórico de evolução do projeto no repositório seja extenso. O CodeTrack utiliza processamentos assíncronos para realizar esta sincronização mas ainda assim o tempo dessa sincronização pode ser reduzido fazendo uso de caches durante este processamento, evitando gargalos causados por um alto número de entradas e saídas (Inputs/Outputs - I/O) tanto no banco relacional quanto no banco grafo.

• Realizar sincronizações automatizadas periódicas Atualmente o CodeTrack verifica se houveram novas modificações no repositório de um projeto analisado atra- vés de gatilhos (triggers) presentes na aplicação que, baseado em ações do usuário, fazem a verificação de qual é a última revisão no repositório e compara com a ultima revisão sincronizada pelo CodeTrack. Dessa forma a aplicação sabe se é necessário atualizar as sincronizações e quais revisões do repositório deverão ser sincronizadas. O problema dessa estratégia é que caso nenhum usuário acesse o projeto analisado e continuem sendo realizadas mudanças no repositório onde este projeto está ar- mazenado, a próxima sincronização do projeto para atualização do mesmo poderá demorar bastante por causa do grande número de commits não sincronizados. Uma melhoria proposta é executar sincronizações diárias automatizadas, através de tare- fas de sincronizações agendadas, dos projetos analisados pela ferramenta para evitar que alguns projetos ainda em desenvolvimento fiquem defasados e que as sincroni- zações evolutivas passem a ter um tempo elevado.

Referências

ALLIANCE, S. The 2015 State of Scrum Report. [S.l.], 2015.

ANGLES, R.; GUTIERREZ, C. Survey of graph database models. ACM Comput. Surv., v. 40, n. 1, p. 1–39, 2008.

BOHNER, S.; ARNOLD, R. Software change impact analysis. IEEE Computer Society Press: Los Alamitos, CA, USA, 1996.

D’AMBROS, M. et al. Analysing software repositories to understand software evolution. In: . Software Evolution. [S.l.]: Springer Berlin Heidelberg, 2008. p. 37–67. ISBN 978-3-540-76440-3.

ECLIPSE Community Survey 2014 Results. 2014. Disponível em: <https://dzone.com/articles/eclipse-community-survey-2014>.

FISCHER, M. P. M.; GALL, H. Populating a release history database from version control and bug tracking systems. International Conference on Software Maintenance, p. 23–32, 2003.

GODFREY, M. W.; GERMAN, D. M. The past, present, and future of software evolution. Frontiers of Software Maintenance, p. 129–138, 2008.

GOMES, F. Uma abordagem para análise de cobertura de código em cenários de evolução. Natal, RN, Brasil: [s.n.], 2015.

GUIMARãES, M. L.; SILVA, A. R. Improving early detection of software merge conflicts. In: ICSE. Proceedings of the 2012 International Conference on Software Engineering. [S.l.], 2012. p. 342–352.

HASSAN, A.; XIE, T. Mining software engineering data. 2010 ACM/IEEE 32nd International Conference on Software Engineering, v. 2, p. 503–504, 2010.

JAVAPARSER. Disponível em: <http://javaparser.org/>.

KAGDI, H. et al. A survey and taxonomy of approaches for mining software repositories in the context of software evolution. Journal of Softw. Maint. Evol., v. 19, n. 2, p. 77–131, 2007.

KRUCHTEN, P.; NORD, R. L.; OZKAYA, I. Technical debt: From metaphor to theory and practice. IEEE Software, v. 29, n. 6, p. 18–21, Nov 2012. ISSN 0740-7459.

LAW J.; ROTHERMEL, G. Whole program path-based dynamic impact analysis. 25th International Conference on Software Engineering, 2003.

LEHMAN, M. M. Programs, life cycles, and laws of software evolution. Proceedings of the IEEE, v. 68, n. 9, p. 1060–1076, 1980.

LEHMAN, M. M.; BELADY, L. A. Program evolution: Processes of software change. Academic Press, 1985.

LIENTZ, B.; SWANSON, E. Software maintenance management. Addison-Wesley, Reading, MA, 1980.

LIMA, G. de A. F. Uma Abordagem para Evolução e Reconciliação de Linhas de Produtos de Software Clonadas. Tese (Doutorado) — Universidade Federal do Rio Grande do Norte, 2014.

MALL, R. Fundamentals of software engineering. [S.l.]: PHI Learning Pvt. Ltd., 2014. MARINESCU, F. Ejb design patterns: Advanced patterns, processes, and idioms. In:

. [S.l.]: Wiley, 2002. cap. EJB Layer Architectural Patterns.

MENS, T.; DEMEYER, S. Software evolution. In: . [S.l.]: Springer, 2008. cap. Introduction and Roadmap: History and Challenges of Software Evolution, p. 1–11. RANDELL, B. System structure for software fault tolerance. IEEE Transactions on Software Engineering, v. 1, n. 2, p. 220–232, 1975.

REN, X.; AL. et. Chianti: A tool for change impact analysis of java programs. SIGPLAN, v. 39, n. 10, p. 432–448, 2004.

RYDER, B.; TIP, F. Change impact analysis for object-oriented programs. Workshop on Program Analysis for Software Tools and Engineering, v. 1, p. 46–53, 2001.

SANTOS, J. Avaliação sistematica de uma abordagem para integração de funcionalidades em sistemas web clonados. Natal, RN, Brasil: [s.n.], 2015.

SARMA, A.; REDMILES, D.; HOEK, A. V. D. Empirical evidence of the benefits of workspace awareness in software configuration management. In: ACM. Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering. [S.l.], 2008. p. 113–123.

SHULL, F. et al. What we have learned about fighting defects. IEEE Symposium on Software Metrics, 2002.

SOKOL, F. MetricMiner: Uma ferramenta de apoio a mineração de repositório de software. São Paulo, SP, Brasil: [s.n.], 2012.

TIP, F. A survey of program slicing techniques. JOURNAL OF PROGRAMMING LANGUAGES, v. 3, p. 121–189, 1995.

VINAYTECH. out. 2008. Disponível em:

<https://vinaytech.wordpress.com/2008/10/04/abstract-syntax-tree/>.

ZIMMERMANN, T. et al. Software evolution. In: . [S.l.: s.n.], 2008. cap. Predicting bugs from history.

ZIMMERMANN, T. et al. Mining version histories to guide software changes. IEEE Trans. Softw. Eng, v. 31, n. 5, p. 429–445, 2005.

Dans le document PROGRAMMING MANUAL for the (Page 176-189)

Documents relatifs