Quero que meus rabiscos do design e comportamento de um programa se tornem mais simplificados e tenham uma linguagem comum com outros desenvolvedores.
Eu olhei para a UML e, em princípio , parece ser o que estou procurando, mas parece ser um exagero. As informações que encontrei on-line também parecem muito inchadas e acadêmicas.
Como posso entender a UML de maneira simples, o suficiente para explicar aos meus colegas? Quais são os recursos canônicos para entender a UML no nível do solo?
Respostas:
Gostei das perguntas - as mesmas que eu me perguntei:
Aqui está o que eu encontrei:
Para um pontapé inicial: minha escolha seria UML Distilled de Fowler . É realmente uma destilação do básico, como já foi mencionado: definições, exemplos, conselhos sobre quando um determinado tipo de diagrama deve ou não ser usado. Também é uma boa referência , se você deseja se concentrar em uma determinada parte da UML sem ler o livro de capa a capa.
Para uma introdução mais detalhada, porém simples, em inglês: o UML 2 for Dummies foi útil para meus colegas e para mim. Ele não apenas apresenta a UML, sua sintaxe e seus usos, mas também oferece muitos conselhos sobre boas práticas de programação e design.
Existem diferenças ocasionais entre os dois livros sobre qual sintaxe pertence a qual versão do padrão UML. No entanto, eles são minuciosos e definitivamente não são essenciais para o uso de diagramas UML para comunicar idéias de design. (Por exemplo: se a UML 2 permite multiplicidades discretas, ou seja, mostra que uma determinada propriedade pode ter exatamente objetos X, Y ou Z, em vez de apenas zero, digamos um, muitos ou mais que X; quando os nomes dos participantes devem ser sublinhados. ..)
Para uma introdução totalmente não acadêmica e menos prolixo: este blog possui artigos sobre vários bits da UML: http://blog.diadraw.com/category/uml/
Não é um livro didático, por isso está longe de ser exaustivo, mas também usa histórias e exemplos que não são livros didáticos, com os quais se relaciona. As poucas postagens disponíveis estão focadas na introdução visual de conceitos UML, para que você possa pular a leitura do texto completamente.
fonte
Eu realmente gostei do UML Distilled de Martin Fowler . Curto e doce, e mais do que adequado para discussões no quadro branco. Pegue algumas cópias e passe-as para a equipe.
fonte
Os diagramas por si só nem sempre são úteis. Por exemplo, o diagrama de casos de uso não pode transmitir regras de negócios em detalhes. O diagrama de classes pode ser muito útil, pois você pode gerar código de classe e DLLs a partir dele.
Acho esses diagramas os mais úteis:
Existem muitos recursos úteis, mas verifique estes:
Edit-1 em resposta ao comentário de Mark.
Embora eu não use esses recursos diariamente, eles servem como referência rápida para a sintaxe UML. Os recursos acima são escolhidos, pois fornecem uma representação rápida e abrangente dos diagramas UML. Ele mostra diagramas comuns e ajuda o novo usuário da UML a ver rapidamente a diferença entre eles. O primeiro recurso, o vídeo, fornece detalhes sobre o Caso de Uso e como ele se relaciona com outros diagramas. Não se espera que os recursos acima sejam suficientes para quem deseja aprender UML ou OOD, percebo que aprender esses tópicos não foi planejado na pergunta original.
fonte
Se você está satisfeito com apenas 10% , não deve tentar aprender com o livro UML. Em vez disso, é melhor você ler um bom livro sobre análise orientada a objetos ou padrões de design - esses livros fornecem os 10% que você está procurando.
No entanto, se você estiver procurando por um tutorial para UML, eu recomendaria esta página da Web e, especialmente, este ensaio sobre diagramas de UML (não é um anúncio, eu pessoalmente não tenho nenhuma relação com este site). Basta navegar pelos diagramas e observá-los: eles são, na sua maioria, autoexplicativos e você pode entender facilmente o que eles estão representando, desde que você esteja ciente do OOP e, geralmente, do design e arquitetura do programa.
Por que eu recomendaria exatamente esta página? (perguntou no comentário)
Existem várias razões pelas quais eu gostei mais do que as outras:
fonte
A Referência de Bolso UML 2.0 da O'Reilly é um pouco mais detalhada que essa, mas provavelmente a melhor opção, pois é pequena o suficiente para encontrar rapidamente o que você precisa, mas ainda tem explicações quando precisa. E está atualizado, o que não é o caso das "folhas de dicas da UML" ou dos cartões de referência que eu encontrei na web - que na maioria das vezes descrevem a UML 1.x
fonte
Existem três partes para isso:
Obter uma referência UML formal
Sempre que estiver aprendendo um novo "idioma", obtenha uma referência que você possa usar e usar a qualquer momento, seja um livro ou um recurso on-line. O UML Distilled é pequeno, possui ótimas explicações e muitos diagramas claros. Mesmo se você não usar todos os recursos, sempre poderá voltar e observar a maneira "certa" de expressar algo.
Use UML para modelar coisas
Agora que você tem uma referência, comece a usá-lo para modelar alguns pequenos sistemas existentes ou sistemas que você está começando a usar. Você provavelmente vai querer seguir os diagramas de classes, de seqüência e de estado para a maioria das situações. Se há algo que você não tem certeza, vá para a sua referência e procure o uso "correto" - se isso não ajudar, tente pesquisar no Google ou pergunte no Stack Overflow. Assim como a programação, a prática é fundamental.
Use alguma UML em projetos reais
Ao começar a usar a UML com sua equipe, lembre-se de que é apenas uma ferramenta para entender o sistema que você construiu ou irá construir. Você ainda deve verificar sua referência durante a diagramação, mas se concentrar em transmitir as informações, não seguindo estritamente as regras.
Pense nas aulas de redação do ensino médio. Seu professor provavelmente considerou um pecado cardinal começar frases com "e", "mas" ou "ou". À medida que você escrevia mais e ganhava mais controle sobre o idioma inglês, aprendeu a dobrar as regras para obter um efeito maior - você fez a transição seguindo a abordagem adequada àquela que transmitia o que você queria dizer o melhor. A UML deve ser usada na indústria exatamente da mesma maneira.
fonte
Eu diria que, se você conhece a UML, todos os diagramas oferecem visões diferentes do seu aplicativo. Muitos livros estão disponíveis.
Se você não conhece a UML, o mais fácil é criar apenas diagramas de classe / sequência que foram revertidos do código existente. Você só precisa reverter o código existente para UML e adicionar suas próprias anotações dentro dos diagramas de classe / sequência. Os diagramas de classes fornecerão uma visão estática do seu aplicativo, o diagrama de sequência descreverá os fluxos dos métodos e, portanto, o comportamento do aplicativo. Trabalho UML realizado e sem erro :)
fonte