ELIHU: projeto de suporte ao desenvolvimento dirigido por modelos com Naked Objects, Domain-Driven Design e padrões de software - Soares, Samuel Alves (2016)
O desenvolvimento dirigido por modelos visa a criação de software por meio de modelos bem definidos contendo as informações necessárias para geração da aplicação. Através de mecanismos de transformações de modelos para código fonte é possível gerar o software com o mínimo de alterações de código pelo desenvolvedor. Porém, verifica-se que a modelagem do software nessa abordagem requer a definição dos artefatos de infraestrutura de aplicação no modelo, como tecnologias de interface de usuário e esquema de persistência de dados, para que essas transformações sejam realizadas. Isso torna a modelagem complexa, de difícil entendimento, evolução e manutenção à medida que novos artefatos precisam ser adicionados, tirando o foco do domínio de negócio da aplicação. Além disso, verifica-se, em muitos casos, que o código de infraestrutura gerado necessita de alterações manuais do desenvolvedor, o que compromete a sincronização entre modelo e código, e exige dos desenvolvedores um amplo domínio das interações de todo o sistema para realizar alterações no modelo e no código. Para resolver esse problema, este trabalho propõe o projeto Elihu, que é baseado nos Naked Objects Pattern, Domain-Driven Design e padrões de projeto de software onde o desenvolvedor modela apenas os objetos de negócio e as suas características relacionadas ao domínio da aplicação. A aplicação completa é gerada com base nesses padrões de software e um framework que implementa o padrão Naked Objects é responsável pela infraestrutura da aplicação e pela exibição dos objetos para os usuários durante a execução do sistema. O uso dos recursos desenvolvidos beneficia a geração de aplicações completas sem intervenções manuais no código gerado, mantendo sincronizados código e modelo ao longo do desenvolvimento.  Palavras-chave: Model-Driven Development. Naked Objects. Domain-Driven Design. Domain Patterns. Padrões de Projeto.