Avaliação de Dependências no Desenvolvimento de Sistemas
Resumo
O reúso de bibliotecas é uma das práticas mais comuns para aumentar a eficiência do processo de desenvolvimento e a qualidade dos sistemas desenvolvidos. Contudo, esse reúso pode ocorrer de forma não apropriada e adicionar dependências externas problemáticas à manutenção do sistema. Diante desse contexto, este artigo tem o objetivo de propor uma abordagem de tópicos e questões que devem ser levadas em consideração durante o desenvolvimento ou manutenção de um sistema com o intuito de analisar a dependência desse sistema para com as bibliotecas utilizadas. Essa análise tem como objetivo a otimização das dependências e está relacionada com a longevidade, estabilidade, maturidade e manutenibilidade do sistema. Para exemplificar a proposta, um estudo de caso que descreve a análise no processo de recuperação da ferramenta Harpia / Mosaicode.
Palavras-chave:
Mosaicode, dependência de bibliotecas, manutenção de software
Referências
Abi-Antoun, M. (2007). Making frameworks work: a project retrospective. In Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion, pages 1004–1018. ACM.
Ahmed, M. A. (2011). Towards the development of integrated reuse envirnoments for uml artifacts. In Proceedings of the 6th International Conference on Software Engineering Advances, pages 426 – 431.
Bessa, S., Valente, M. T., and Terra, R. (2016). Modular specification of architectural constraints. In 2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS), pages 31–40.
Caldiera, G. and Basili, V. R. (1991). Identifying and qualifying reusable software components. Computer, 24(2):61–70.
German, D. M. and Hassan, A. E. (2009). License integration patterns: Addressing license mismatches in component-based development. In Proceedings of the 31st International Conference on Software Engineering, pages 188–198. IEEE Computer Society.
Gimenes, I. M. d. S. and Huzita, E. H. M. (2005). Desenvolvimento baseado em componentes: conceitos e técnicas. Rio de Janeiro: Ciencia Moderna ˆ .
Group, T. H. (2017). Design patterns library.
Hummel, O. (2010). Facilitating the comparison of software retrieval systems through a reference reuse collection. In Proceedings of the Workshop on Search-Driven Development: Users, Infrastructure, Tools and Evaluation, pages 17–20.
Kula, R. G., De Roover, C., German, D., Ishio, T., and Inoue, K. (2014). Visualizing the evolution of systems and their library dependencies. In Software Visualization (VISSOFT), 2014 Second IEEE Working Conference on, pages 127–136. IEEE.
Mancinelli, F., Boender, J., Di Cosmo, R., Vouillon, J., Durak, B., Leroy, X., and Treinen, R. (2006). Managing the complexity of large free and open source package-based software distributions. In Automated Software Engineering, 2006. ASE’06. 21st IEEE/ACM International Conference on, pages 199–208. IEEE.
Manolescu, D., Kozaczynski, W., Miller, A., and Hogg, J. (2007). The growing divide in the patterns world. IEEE Software, 24(4):61–67.
Melo, I., Santos, G., Serey, D. D., and Valente, M. T. (2016). Perceptions of 395 developers on software architecture’s documentation and conformance. In X Brazilian Symposium on Software Components, Architectures and Reuse, pages 81–90.
Mendez, D., Baudry, B., and Monperrus, M. (2013). Empirical evidence of large-scale diversity in api usage of objected-oriented software. In Proceedings of 13th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM), pages 43–52.
Niu, H., Keivanloo, I., and Zou, Y. (2017). Api usage pattern recommendation for software development. Journal of Systems and Software, 129:127 – 139.
Pressman, R. and Maxim, B. (2016). Engenharia de Software-8a Edição. McGraw Hill Brasil.
Rosik, J., Gear, A. L., Buckley, J., Babar, M. A., and Connolly, D. (2011). Assessing architectural drift in commercial software development: a case study. Software: Practice and Experience, 41(1):63–86.
Schiavoni, F. L. and Gonçalves, L. L. (2017). Teste de usabilidade do sistema mosaicode. In Anais [do] IV Workshop de Iniciação Científica em Sistemas de Informação (WICSI), pages 5–8, Lavras - MG - Brazil.
Shiva, S. G. and Abou Shala, L. (2007). Software reuse: Research and practice. In Fourth International Conference on Information Technology (ITNG’07), pages 603– 609. IEEE.
Zhong, H., Xie, T., Pei, P., and Mei, H. (2009). Mapo: mining and recommending api usage pattern. In Proceedings of European Conference on Object-Oriented Programming, page 318–343.
Ahmed, M. A. (2011). Towards the development of integrated reuse envirnoments for uml artifacts. In Proceedings of the 6th International Conference on Software Engineering Advances, pages 426 – 431.
Bessa, S., Valente, M. T., and Terra, R. (2016). Modular specification of architectural constraints. In 2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS), pages 31–40.
Caldiera, G. and Basili, V. R. (1991). Identifying and qualifying reusable software components. Computer, 24(2):61–70.
German, D. M. and Hassan, A. E. (2009). License integration patterns: Addressing license mismatches in component-based development. In Proceedings of the 31st International Conference on Software Engineering, pages 188–198. IEEE Computer Society.
Gimenes, I. M. d. S. and Huzita, E. H. M. (2005). Desenvolvimento baseado em componentes: conceitos e técnicas. Rio de Janeiro: Ciencia Moderna ˆ .
Group, T. H. (2017). Design patterns library.
Hummel, O. (2010). Facilitating the comparison of software retrieval systems through a reference reuse collection. In Proceedings of the Workshop on Search-Driven Development: Users, Infrastructure, Tools and Evaluation, pages 17–20.
Kula, R. G., De Roover, C., German, D., Ishio, T., and Inoue, K. (2014). Visualizing the evolution of systems and their library dependencies. In Software Visualization (VISSOFT), 2014 Second IEEE Working Conference on, pages 127–136. IEEE.
Mancinelli, F., Boender, J., Di Cosmo, R., Vouillon, J., Durak, B., Leroy, X., and Treinen, R. (2006). Managing the complexity of large free and open source package-based software distributions. In Automated Software Engineering, 2006. ASE’06. 21st IEEE/ACM International Conference on, pages 199–208. IEEE.
Manolescu, D., Kozaczynski, W., Miller, A., and Hogg, J. (2007). The growing divide in the patterns world. IEEE Software, 24(4):61–67.
Melo, I., Santos, G., Serey, D. D., and Valente, M. T. (2016). Perceptions of 395 developers on software architecture’s documentation and conformance. In X Brazilian Symposium on Software Components, Architectures and Reuse, pages 81–90.
Mendez, D., Baudry, B., and Monperrus, M. (2013). Empirical evidence of large-scale diversity in api usage of objected-oriented software. In Proceedings of 13th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM), pages 43–52.
Niu, H., Keivanloo, I., and Zou, Y. (2017). Api usage pattern recommendation for software development. Journal of Systems and Software, 129:127 – 139.
Pressman, R. and Maxim, B. (2016). Engenharia de Software-8a Edição. McGraw Hill Brasil.
Rosik, J., Gear, A. L., Buckley, J., Babar, M. A., and Connolly, D. (2011). Assessing architectural drift in commercial software development: a case study. Software: Practice and Experience, 41(1):63–86.
Schiavoni, F. L. and Gonçalves, L. L. (2017). Teste de usabilidade do sistema mosaicode. In Anais [do] IV Workshop de Iniciação Científica em Sistemas de Informação (WICSI), pages 5–8, Lavras - MG - Brazil.
Shiva, S. G. and Abou Shala, L. (2007). Software reuse: Research and practice. In Fourth International Conference on Information Technology (ITNG’07), pages 603– 609. IEEE.
Zhong, H., Xie, T., Pei, P., and Mei, H. (2009). Mapo: mining and recommending api usage pattern. In Proceedings of European Conference on Object-Oriented Programming, page 318–343.
Publicado
11/11/2020
Como Citar
BARBOSA, Carlos Magno; SCHIAVONI, Flávio Luiz.
Avaliação de Dependências no Desenvolvimento de Sistemas. In: ESCOLA REGIONAL DE ENGENHARIA DE SOFTWARE (ERES), 4. , 2020, Evento Online.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2020
.
p. 106-115.
DOI: https://doi.org/10.5753/eres.2020.13721.