UML morreu e ninguém percebeu?



UML, vamos sentir sua falta A



Unified Modeling Language (UML) , desenvolvida pela Rational Software e adotada como padrão pelo Object Management Group (OMG) em 1997, pretendia padronizar muitos tipos diferentes de notações gráficas adotadas pela indústria de desenvolvimento de software .



Minha história de relacionamento com a UML começou há quase uma década, quando me tornei um evangelista dessa linguagem como uma ponte entre TI e negócios . Nunca estive totalmente convencido do valor da UML como uma notação para modelar produtos de software específicos; meu objetivo era usar UML para descrever as propriedades estruturais e comportamentais necessárias esperadas do sistema projetado.



A revelação para mim foi a semântica formal associada aos diagramas de atividades UML. Eu não suportava os diagramas informais do Visio por causa das muitas ambigüidades neles. Por exemplo, o que as duas setas saindo do retângulo significam: seleção ou divisão do fluxo em dois caminhos paralelos? Um exemplo semelhante: duas setas apontando para o mesmo retângulo significam que a ação começa imediatamente após o primeiro thread atingir o retângulo? Ou talvez seja OR, XOR ou AND? Em geral, você entendeu. A UML resolve esse problema introduzindo uma semântica clara e inequívoca.





O jogo foi injusto desde o início: não há uma resposta correta. Eu



realmente coloquei meu coração e minha alma na UML:



  • Desenhei diagramas para minhas próprias soluções de 2004 a 2015 para sete empregadores e clientes diferentes usando quase exclusivamente UML.
  • UML ( -) .
  • , UML. Haskell GraphViz UML.


Alguns anos depois, por volta de 2015, percebi que havia praticamente parado de usar a UML, assim como o restante de meus colegas, bem como quase todos os clientes da Fortune 500 que consultei recentemente. O que aconteceu?



Eu sei que foi a morte de mil cortes. E não, a UML não matou a comunidade empresarial por causa de sua complexidade ou rigor. Em contraste, os empresários adoram a capacidade de se comunicar de forma clara e inequívoca com alguns novos símbolos. O pessoal de TI elevou a UML (eu fiz isso uma vez) e também fez com que ela caísse.



Mas a própria UML não foi a vítima. Francamente, a UML é apenas uma perda colateral. O verdadeiro massacre foi na área de desenvolvimento de requisitos, que inclui business intelligence e design. Agile se tornou o assassino, e as histórias de usuários eram suas flechas envenenadas.



No modelo, onde as histórias do usuário são colocadas na entrada e uma demonstração (ou lançamento de produção de recurso) é recebida na saída, não há mais espaço para análises estruturais significativas de tarefas.



No admirável mundo novo de hoje, a compreensão é diretamente cristalizada em código pronto para produção. Até mesmo a modelagem de negócios foi, de fato, eliminada por uma disciplina Agile relacionada: Domain Driven Design (DDD). Contextos limitados encapsulam (varrem para debaixo do tapete) a complexidade de forma que uma empresa possa escalar para "equipes de duas pizzas". As empresas que usam o BDD e exigem que suas equipes escrevam as especificações do Cucumber têm a vantagem aqui, mas muito poucas empresas o fazem.



O paradigma moderno é que ainda não seremos capazes de entender o problema. Os gurus da transformação digital nos dizem que precisamos implantar produtos na produção para que os próprios usuários possam saber quais são os requisitos de negócios, e não formulá-los a priori. Graças a isso, podemos fazer várias tentativas para acertar. Sim, neste paradigma, é preciso cometer erros com rapidez e frequência.



Você já deve ter percebido que isso não é uma falha da UML. Acabamos de desistir da análise de negócios e das especificações formais, então nos deparamos com uma nova questão: o que usar em vez de UML?





Um exemplo de diagrama masala



Embora alguns usem técnicas de modelagem leves como C4 , a maioria dos diagramas em uso hoje é do tipo que chamo de forma desdenhosa de "diagramas masala" . Afinal, por que não chamar os diagramas que eu mesmo faço? Por que Masala? Porque são informais; cobrem simultaneamente várias dimensões, podem ser estruturais e comportamentais, lógicas e físicas. Freqüentemente, são um amontoado de representações de um modelo arquitetônico 4 + 1 .





Como preparar um diagrama Masala



Os milhões de sistemas de dólares dos quais nossas vidas e finanças dependem são criados, financiados e implementados inteiramente a partir desses diagramas masala, que geralmente contêm nada mais do que alguns épicos e histórias de usuários.



"Autor, bem, a arquitetura do sistema de hipotecas do meu banco certamente não foi projetada com base nesses seus modelos masala horríveis!"


Não pode ser verdade, pode? Na verdade, se o seu banco não usa o CICS e a solução foi vendida no ano passado, há uma grande probabilidade de que ela foi construída com base nos próprios diagramas masala.



O mundo enlouqueceu? Não, nós apenas desistimos da engenharia de software. Agora é apenas uma aposta de código . Não estou dizendo que aqueles que escrevem software não são engenheiros; na maioria das vezes, não é. A questão é que, no nível organizacional, o software não é mais projetado , como é feito em outras áreas, por exemplo, na engenharia mecânica. A Boeing jamais encomendaria um motor a jato da Rolls Royce com base em um diagrama masala tão informal.



No entanto, os diagramas masala têm seu próprio propósito. Quando usados ​​onde pertencem, eles são bonitos. Veja, essas não são especificações . Seu objetivo é evocar emoções. Os diagramas de Masala são valiosos quando você precisa levar alegria ao coração do líder a quem se destinam.



Não importa o quanto eu discuta com meus amigos do campo Agile, não posso permanecer cego para a felicidade das pessoas. Meus clientes e colegas não estão apenas pedindo mais diagramas masala , mas insistem que eu os torne ainda mais masala (para que eu combine mais dimensões arquitetônicas neles!). Por que resistir a isso?



A UML ainda permanece em meu coração e eu continuo estruturando soluções usando várias dimensões, mas na forma de dados / tabelas puros. E quando se trata de notação gráfica, pego meu liquidificador e minha frigideira de 5 litros e começo a fazer um gráfico de masala maravilhoso para meus clientes favoritos.






Propaganda



Os servidores da Epic são VDS para hospedar sites de uma pequena loja online na Opencart a projetos sérios com um grande público. Crie suas próprias configurações de servidor com apenas alguns cliques!



Junte-se ao nosso chat do Telegram .






All Articles