Tomada de decisões arquiteturais em projetos de software: um estudo exploratório com profissionais
Resumo
Durante o ciclo de desenvolvimento de software, a arquitetura é fundamental para o sucesso da solução e, além de aspectos estruturais e comportamentais, a arquitetura contempla várias decisões críticas tomadas sobre o software. Nesse contexto, alguns estudos da literatura foram conduzidos sobre o processo de tomada de decisões de arquitetura, porém eles estão restritos a um domínio de negócio específico e foram conduzidos com profissionais fora do panorama brasileiro. Por esse motivo, esse estudo tem como objetivo apresentar uma perspectiva preliminar e entender sobre o processo de tomada de decisões de arquitetura de software na visão de profissionais brasileiros atuantes na indústria de software. Os resultados, obtidos a partir de entrevistas semiestruturadas com nove profissionais atuando em empresas diferentes e com variadas habilidades, trazem achados sobre o processo de tomada de decisão, incluindo como as decisões são tomadas e a definição da arquitetura é feita.
Referências
Corbin, J. and Strauss, A. (2008). Basics of qualitative research: Techniques and procedures for developing grounded theory (3rd ed.). Sage.
Dasanayake, S., Markkula, J., Aaramaa, S., and Oivo, M. (2015). Software architecture decision-making practices and challenges: An industrial case study. In 2015 24th Australasian Software Engineering Conference, pages 88–97.
Dasanayake, S., Markkula, J., Aaramaa, S., and Oivo, M. (2016). An empirical study on collaborative architecture decision making in software teams. In Tekinerdogan, B., Zdun, U., and Babar, A., editors, Software Architecture, pages 238–246, Cham. Springer International Publishing.
Heesch, U. v. and Avgeriou, P. (2011). Mature architecting a survey about the reasoning process of professional architects. In 2011 Ninth Working IEEE/IFIP Conference on Software Architecture, pages 260–269.
Hofmeister, C., Kruchten, P., Nord, R. L., Obbink, H., Ran, A., and America, P. (2007). A general model of software architecture design derived from five industrial approaches. Journal of Systems and Software, 80(1):106–126.
Maxwell, J. (2012). Qualitative research design : An interactive approach / j.a. maxwell.
Power, K. and Wirfs-Brock, R. (2018). Understanding architecture decisions in context - an industry case study of architects’ decision-making context. In ECSA, volume 11048 of Lecture Notes in Computer Science, pages 284–299. Springer.
Ralph, P., Baltes, S., Bianculli, D., Dittrich, Y., Felderer, M., Feldt, R., Filieri, A., Furia, C. A., Graziotin, D., He, P., Hoda, R., Juristo, N., Kitchenham, B. A., Robbes, R., Méndez, D., Molléri, J. S., Spinellis, D., Staron, M., Stol, K., Tamburri, D. A., Torchiano, M., Treude, C., Turhan, B., and Vegas, S. (2020). ACM SIGSOFT empirical standards. CoRR, abs/2010.03525.
Razavian, M., Paech, B., and Tang, A. (2019). Empirical research for software architecture decision making: An analysis. Journal of Systems and Software, 149:360–381.
Seaman, C. B. (1999). Qualitative methods in empirical studies of software engineering. IEEE Trans. Software Eng., 25:557–572.
Shaw, M. (1995). Making choices: A comparison of styles for software architecture. IEEE Software, 12(06):27–41.
Souza, L. (2022). Indústria de software e serviços de tic cresceu 6,5% em 2021. Disponível em [link]. Acesso em 15 de novembro 2022.
Stol, K.-J., Ralph, P., and Fitzgerald, B. (2016). Grounded theory in software engineering research: A critical review and guidelines. In 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE), pages 120–131.
Tofan, D., Galster, M., and Avgeriou, P. (2013). Difficulty of architectural decisions – a survey with professional architects. In Drira, K., editor, Software Architecture, pages 192–199, Berlin, Heidelberg. Springer Berlin Heidelberg.
van Vliet, H. and Tang, A. (2016). Decision making in software architecture. Journal of Systems and Software, 117:638–644.