“UML é a pior coisa que já aconteceu com o MDD.” Por quê?


17

William Cook em um tweet escreveu que:

" UML é a pior coisa que já aconteceu ao MDD. Felizmente, muitas pessoas agora percebem isso ... "

Gostaria de saber o raciocínio por trás dessa alegação (aparentemente, não estou me referindo à sua opinião pessoal).

Percebi que muitas pessoas por aí não gostam tanto de UML. Também vale a pena mencionar que ele está na academia, onde a UML representa muito o santo graal do design e modelagem eficazes.


15
Eu diria que o MDD é a pior coisa que já aconteceu com o MDD.
Michael Borgwardt

Respostas:


39

Bem, eu sou o acadêmico que postou o tweet original. Os tweets não devem ser artigos acadêmicos. São anúncios, e acho que também podem ser controversos. Aqui estão os meus tweets de acompanhamento:

1) A UML foi criada para modelar projetos de OO. Na verdade, você está modelando o código de um sistema, não o comportamento do sistema. UML está no nível errado.

2) a idéia de que 7 (ou 13) formatos de diagrama na UML podem cobrir tudo que é louco. E quanto a GUIs, wireframes da web, autorização etc. ???

3) A UML incentivou a ideia de que os modelos devem ser gráficos. Ridículo! Modelos de texto e gráficos são úteis e geralmente intercambiáveis

4) A UML é ao mesmo tempo muito grande e complexa e ao mesmo tempo muito limitada. Estereótipo e perfis não são eficazes para extensões utilizáveis.

Observe que não estou necessariamente dizendo que a UML é ruim. Estou simplesmente dizendo que não está ajudando o objetivo do "desenvolvimento orientado a modelos", que é o meu interesse. Não entendo o comentário sobre o "Santo Graal".


10
+1 para encontrar e responder a uma pergunta no prog.SE sobre seu próprio tweet!
Warren P

Portanto, o desenvolvimento orientado a modelos sempre me pareceu ter um modelo visual. E se não for UML, então o que? (nota, eu nunca gostei de MDD, e eu odeio UML Mas estou disposto a dar MDD-sans-UML um tiro que eu deveria tentar..?
Warren P

1
@ Warren P: do que você não gosta no MDD e no UML?
21412 dan_l

1
Eu removi minha resposta porque claramente estava errado sobre o que você quis dizer. Mas defendo a afirmação de que a UML, como qualquer linguagem, é uma ferramenta de comunicação, não uma ferramenta de design. Você respondeu que 'Muitas linguagens de programação têm a palavra "linguagem" em seu nome, mas isso não significa que elas sejam apenas para comunicação, não para execução "- acho que você perde o ponto de que a execução É comunicação com um computador. Você também não usaria o COBOL como uma ferramenta de design.
PDR

Eu acho que o comentário do "Santo Graal" se refere à frequência de ser ensinado.

8

UML é o equivalente a pegar uma chave de fenda e um martelo, colá-los juntos e chamá-lo de "Ferramenta de Fixação Universal". Em teoria, ele pode ser usado para representar uma tonelada de coisas em grande detalhe, na prática, é um monte de ferramentas mal integradas que afirmam ser uma ferramenta única, o que torna a execução de qualquer tarefa muito mais difícil do que ter uma ferramenta adequada para começar.



3

Acho que há também um argumento a ser feito de que o MDD é a pior coisa que aconteceu com a UML (por que mais teríamos a UML2 que temos?), Mas ignorando isso por enquanto ...

MDD = Orientado a modelo <Design | Desenvolvimento>. A idéia é ser capaz de desenvolver soluções em um nível de abstração apropriado ao domínio do problema - ou seja, é uma tentativa de expressar soluções para problemas na sintaxe mais natural para expressar essas soluções. O domínio do problema em si é caracterizado por um modelo operacional (ou seja, por um modelo que pode ser executado por computador). Portanto, o MDD pode ser uma abordagem muito atraente, embora com dois requisitos principais:

  1. É preciso ser capaz de compilar essa linguagem em um formato adequado à execução do computador (o modelo deve estar operacional ); e
  2. É preciso criar uma linguagem de modelagem para o domínio do problema.

Entendo que o esforço da UML2 visava abordar o ponto 1, provavelmente sob a crença de que a experiência industrial com a UML mostrou que o ponto 2 foi satisfeito por algum grande subconjunto de domínios problemáticos. Infelizmente, e é para isso que eu acho que William Cook estava chegando, a UML não satisfaz o ponto 2 em nenhum lugar próximo ao escopo dos problemas que foram pensados. Não falo por experiência pessoal, mas acho que a experiência industrial do uso do MDD com UML tem dois resultados comuns:

  • O código-fonte gerado a partir da UML precisa ser ajustado para resolver essas pequenas lacunas entre o design da UML e os requisitos do programa (forçando os desenvolvedores a trabalhar com o código gerado que possui diferentes padrões de manutenção e reduzindo a aplicabilidade dos artefatos da UML à implementação ); OU
  • A UML fica confusa com muitos detalhes, o que reduz sua usabilidade como uma linguagem de comunicação sobre o design.

    Em ambos os casos, a promessa do MDD não é cumprida. A UML pode ser considerada a pior coisa que aconteceu com o MDD, porque chamou a atenção dos desenvolvedores de ferramentas do MDD para a exclusão de modelos que podem realmente funcionar (embora para um conjunto menor de problemas de software).


  • -2

    A UML é excelente desde que seja apenas uma linguagem de modelagem. Se você tentar conectar o MDD à UML para obter uma visualização gráfica, será inútil. MDD seria ótimo sem UML e UML sem MDD.

    Digamos que UML e MDD se divorciaram hoje para ter uma vida melhor e não ficar mais juntos :-)


    Não é "ótimo" em nenhum nível. Um usuário da desastrosa linguagem de programação ADA (Booch) criou alguns diagramas infantis e se juntou a algumas abordagens mais sérias de diagramação de classe para criar UML. A UML imediatamente se transformou em um gerador de receita de grandes fornecedores de software. Foi horrível, mas recuperado simplesmente inserindo novos tipos de diagrama (aquela UML anterior) como sequência, fluxo de dados etc. Não há nada extensível sobre isso. Sem esquemas de banco de dados, sem diagramas de camada, é cheio de lacunas e cheio de diagramas inúteis ao mesmo tempo.
    Rick O'Shea
    Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
    Licensed under cc by-sa 3.0 with attribution required.