,

A Engenharia de Software Inteligente: Novos Conceitos e Aplicações Práticas

Introdução

Neste artigo abordamos um novo conceito, a Engenharia de Software Inteligente (ESI). A ESI é a adoção de algoritmos de inteligência artificial no processo de desenvolvimento de software. Para ilustrar aplicações práticas sobre a ESI, discutimos o estudo publicado por Perkusichk (et. al, 2020) e enunciamos alguns algoritmos inteligentes mais utilizados. 

Desenvolvimento

Com o avanço de novas tecnologias e do processo de desenvolvimento de software, está surgindo uma nova área: a Engenharia de Software Inteligente – ESI (Perkusichk et. al, 2020). A ESI está focada em utilizar processos de desenvolvimento de software, como o agile por exemplo, junto com a Inteligência Artificial – IA. Técnicas de inteligências artificiais como sistemas baseados em conhecimento, redes neurais, lógica fuzzy e mineração de dados tem sido defendida por muitos pesquisadores e desenvolvedores como uma das formas de melhorar as atividades de desenvolvimento de software (Meziane e Vadera, 2010).

De acordo com um estudo publicado em “Intelligent Software Engineering in the Context of Agile Software Development: a Systematic Literature Review em 2020 por Perkusichk (et. al, 2020), os autores respondem, dentre várias questões, como a IA é utilizada na engenharia de software. Para isso, os autores investigam artigos científicos e fornecem uma análise.

Como resultado dessa pesquisa, uma das descobertas dos autores são os campos de aplicações da IA. Desta forma, há um grande uso de algoritmos de IA na gestão da engenharia de software, mais especificamente em estimativa de esforço e custo, priorização de requisitos, alocação de recursos e seleção de requisitos para uma determinada sprint. A seguir, destacaremos alguns dos principais algoritmos utilizados na engenharia de software, com base no estudo aqui discutido. 

  • No campo de estimativa de esforço, segundo os autores, alguns dos principais algoritmos de IA aplicados são aprendizagem de máquina e modelos probabilísticos (Perkusichk et. al, 2020). 
  • Em requisitos de software, que é a área que se preocupa em fazer a gestão de requisitos de um software, são usados algoritmos de aprendizagem de máquina para apoio na validação, especificação e elicitação de requisitos (Perkusichk et. al, 2020).
  • Em processos de software são utilizados algoritmos de modelagem probabilística de incerteza para avaliação no processo de desenvolvimento de software (Perkusichk et. al, 2020).

Desta maneira, podemos notar que a IA já é realidade na engenharia de software e pode ser usada para melhoria no processo de desenvolvimento de software. 

Conclusão

Neste artigo abordamos uma área promissora do desenvolvimento de software chamada Engenharia de Software Inteligente. Nela, algoritmos de IA são usados como benfeitores para uma entrega de software de valor ao usuário final. Abordamos, também, parcialmente o trabalho publicado por  Perkusichk (et. al, 2020) que nos instiga a repensar o modo como aplicamos a engenharia de software na indústria.

Referências e leituras complementares

Perkusich, M., e Silva, L. C., Costa, A., Ramos, F., Saraiva, R., Freire, A., … & Perkusich, A. (2020). Intelligent software engineering in the context of agile software development: A systematic literature review. Information and Software Technology, 119, 106241.

Meziane, F., & Vadera, S. (2010). Artificial intelligence in software engineering: current developments and future prospects. In Artificial intelligence applications for improved software engineering development: New prospects (pp. 278-299). IGI Global.