18/12/2024 - 4ª feira - 14h
Seminário: Código-Fonte ou Modelo? Como o Uso de Ferramentas de Linguagens Pode Auxiliar na Programação Generativa
Local: Auditório Prof. Mauro Biajiz (DC) ou pelo link https://meet.google.com/tyd-aisp-euo
Palestrante: Prof. Dr. Daniel Lucrédio (DC/UFSCar)
Resumo: A Engenharia de Software Dirigida por Modelos (MDSE - Model-Driven Software Engineering) tem como objetivo centralizar a modelagem no processo de desenvolvimento, incorporando especificações em diferentes níveis de abstração, desde conceitos mais gerais até detalhes específicos de um domínio. Um caso típico dessa abordagem envolve uma sequência de transformações automatizadas que começa em modelos conceituais, passa por modelos intermediários com conhecimento da plataforma, até chegar ao código-fonte. Entre os benefícios dessa prática estão o aumento da qualidade, produtividade e eficiência. No entanto, a MDSE exige um maior cuidado com o formalismo e a criação de artefatos de modelagem, que muitas vezes são vistos apenas como documentação auxiliar, em vez de parte integrante do software. Uma alternativa para reduzir a necessidade de criar modelos abstratos é utilizar as próprias estruturas do código-fonte como parte da especificação, especialmente em tarefas mais voltadas à implementação. Isso pode ser especialmente útil nas fases mais avançadas do ciclo de vida do software, quando o código-fonte se torna mais relevante. Nesta palestra, serão apresentadas formas de aplicar as técnicas da MDSE diretamente no código-fonte, sem a obrigatoriedade de que os desenvolvedores mantenham modelos muito abstratos em paralelo. Serão discutidos exemplos de um projeto de pesquisa que investigou a geração de código para uma arquitetura de microsserviços, no qual o desenvolvedor utiliza o código-fonte, juntamente com uma especificação da arquitetura, para obter software executável. Os resultados apresentados nesta palestra são oriundos de pesquisa financiada pela Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP), processo nº 2021/06983-2. As opiniões, hipóteses e conclusões ou recomendações expressas neste material são de responsabilidade do(s) autor(es) e não necessariamente refletem a visão da FAPESP.
Mini-currículo: Possui graduação em Engenharia de Computação pela Universidade Federal de São Carlos (2002), mestrado em Ciência da Computação pela Universidade Federal de São Carlos (2005) e doutorado em Ciências da Computação e Matemática Computacional pela Universidade de São Paulo (2009), com períodos de estágio no exterior na George Mason University (EUA) e Microsoft Research (EUA). Atualmente é professor adjunto da Universidade Federal de São Carlos. Tem experiência na área de Engenharia de Software, atuando principalmente nos seguintes temas: reutilização de software, desenvolvimento orientado a modelos e computação em nuvem.