terça-feira, 3 de janeiro de 2012

UML - Hierarquia dos diagramas

Agora que entendemos basicamente a utilidade de cada diagrama precisamos “ver por cima” o pq eles existem, precisamos de uma síntese geral para entender o pq de cada diagrama.

Os digramas da UML 2.0 dividem-se em DIagramas Estruturais e DIagramas Comportamenteis, sendo que estes últimos possuem ainda uma sub-divisão representada pelos DIagramas de Interação, conforme pode ser verificado abaixo:


 

É importante que vc clique da imagem e leia esse texto a seguir assim consegue ter uma visão melhor de tudo.

Conforme aparece na imagem os Diagramas Estruturais(Structure Diagram) abragem os Diagramas de Classes, Estrutura Composta, de objetos, de Componentes, de Implantação e de Pacotes, enquanto os Diagramas Comportamentais(Behavior Diagram) englobam os Diagramas de Casos de Uso, Atividade, Máquina de Estados, Sequência, Comunicação, de Interação Geral e de Tempo, sendo que estes últimos 4 correspondem aos diagramas da sub-divisão de Diagramas de Interação. Isso não significa que um é mais importante que o outro ou que é necessário fazer todos mas sim, significa entender que os diagramas em si são divididos em dois tipos que são os de estrutura e os de comportamento destinados claramente a atender esses objetivos que são entender a estrutura do sistema e como funcionam os comportamentos dele baseado em cada ação.

Um complementa o outro
O sentido de um complementa o outro é algo muito lógico mas atenção, não estou me referindo a minha namorada por exemplo que me completa (apesar de ela me completar infinitamente =]) mas sim ao fato de que conseguimos eliminar uma dúvida de comportamento ou de estrutura com o outro diagrama.

HEINN?? Eu sei eu sei que esse papo de diagramas e diagramas de UML é um saco mas vamos a um exemplo prático:

Estou fazendo um modulo no meu sistema que administra novidades que ficam em destaque no site, vamos imaginar em  o que o usuario pode fazer nesse módulo... para isso montamos inicialmente o Diagrama de caso de uso olha um exemplo:


Um exemplo simples com um Ator(Usuario) que administra novidades, dentro dessa administração existem um CRUD (Inserir,Excluir,Deletar) simples não é? Sim esse é o intuito do caso de uso enteder por cima o que acontece... mas e ai? COmo exatamente aconteceria esse processo? Será que estamos esquecendo de algo? Vamos fazer então um Diagrama de Atividade para o método que futuramente vai inserir a novidade e ficaria mais o menos assim:

Veja que aquele diagrama de caso de uso nos deu parametro para entendermos o que queremos e assim montar a sequencia de como será feito (utilizando o Diagrama de atividade). Meu intuito não é explicar aqui como fazer o caso de uso e mt menos o diagrama de atividade por isso não se preocupe em entender de fato os diagramas mas se preocupe  sim em saber que no final das contas um ajuda o outro. Futuramente vou explicar melhor como se faz cada um ok?


Programas para UML

Chegou uma hora interessante afinal, não vamos ficar desenhando os diagramas no caderno né? Ou ainda no paint,gimp photoshop isso iria dar muito trabalho... Vamos criar esses diagramas com programas próprios para isso, vou apresentar alguns aqui mas não vou entrar no mérito de explicar um a um pois são ferramentas visuais e seu uso é intuitivo.

Umbrello (para linux)
Esse é o programa que estou usando para criar os diagramas para esses artigos, particularmente acho ele muito simples e fácil de trabalhar alem de ser open-source e free, pode ser baixado facilmente nos repositórios do ubuntu basta fazer um sudo apt-get install umbrello e pronto, instalado. Acho que é importante deixar claro também que ele é muito limitado ok? Assim ninguém me xinga depois rsrs.
BOUML (para linux)
Esse é um mais completo que o Umbrello e de fácil utilização tambem, utilizei muito pouco mas achei ele muito bom para fazer engenharia reversa.
Para instalar esse carinha entre no seu central de programas e procure por ele, em um clique já estara em sua máquina.

Visual Paragigm (windows e linux)
Esse ja deixa a apresentação de lado pois é uma ferramenta case UML muito poderosa alem de ter versões para varios SOs... o problema é que é codigo fechado e pago mas é possível utilizar ele de graça com a sua veroa community basta baixar no site e fazer seu registro http://www.visual-paradigm.com/

Bem existem outros como Poseidon, Jude mas vou deixar que vcs procurem essa não é uma tarefa dificil e vc utiliza aquele que vc se identifica e pode ter.

Por hoje é só, no próximo post vou começar explicando o caso de uso onde vamos começar a modelar um pequeno sistema de noticias.

Obrigado e até a próxima.

5 comentários:

  1. Cara como é possível uma interação tão sincrona como vc faz em seu blog? Livros de engenharia de requisitos são chatos e massantes mas você consegue transformar a matéria em algo gostoso de estudar! Parabéns por tudo!

    ResponderExcluir
  2. Paulo gostaria de saber onde encontro livros seu sobre engenharia de software.

    Estou realmente perdido nela e ai conheço seu blog que fala claramente de UML existe um livro seu que alem de UML engloba engenharia de software completa? Preciso muito disso pois me inscrevi para um concurso público e se não passar não sei o que faço da vida

    Valeu meu amigo

    ResponderExcluir
  3. Pv vc é aquele cara que não se prende a uma linguagem de programação mas sim a um bem muito maior que é a arquitetura e engenharia da TI. Essa sua namorada tem razão em te amar muito hehehe. Brigadão pelos toques sobre UML abordando a UML 2 junto ninguém faz isso

    ResponderExcluir
  4. Cara eu não me aguentei quando li isso "não estou me referindo a minha namorada por exemplo que me completa (apesar de ela me completar infinitamente =])" você foi para angulos totalmente diversos buscando deixar claro o seu objetivo sobre a ligação dos diagramas, ótima sua serie completa de metodologia ágeis e UML, pode postar algo sobre ruby on rails? Manja? De certo que namorada deve adorar essa postagem, risos.

    ResponderExcluir
  5. Cara isso caiu na minha prova e eu não sabia responderrr, posso utilizar sdeu conteudo como parte do meu trabalho de engenharia?

    brigxx

    ResponderExcluir