Desenvolvimento Orientado a Modelo
Comunicação entre pessoas e máquinas;
Verificação da integridade;
Análise de condição de corrida;
Teste de casos;
Custo e estimativa;
Normas;
Implementação.
Em um modelo pode-se escolher qual assunto incluir e ignorar e até mesmo modelar vários modelos juntos. Além disso, para expressar um modelo em uma linguagem requer um nível de abstração, com isso, um modelo expresso UML (Linguagem de Modelagem Unificada) irá ignorar a realização de ações, deixando o compilador ou o desenvolvedor tomarem as decisões devidas.
Um modelo não precisa ser completo, muitas vezes não são ou não precisam ser executáveis, pois é mais utilizado para aumentar a produtividade.
Alguns argumentam que os modelos oferecem mais obstáculos do que ajuda que pode ser mal definidos e difíceis de traduzir para códigos, sendo meramente consultivos. Quando os modelos são totalmente automatizados, como os modelos executáveis, os argumentos tornam-se menos convincentes.
Além disso, o desenvolvimento orientado a modelo transforma aplicações abstratas de alto nível em sistemas executáveis. Aumentando significativamente em todos os aspectos de desenvolvimento de softwares podendo gerara maior parte do código a parti de modelos de aplicação e ainda exige a aplicação da criatividade.
Para trazer essa automação a uma realidade, os modelos devem ter um significado definido, um tema carregado. A linguagem consiste em semântica e sintaxe e por isso, deve-se separar uma linguagem de modelagem e de sua sintaxe.
Desenvolvimento orientado a modelo automatiza a transformação de modelos de uma