Fundamentos do  Unified Modelling Language (UML) - Parte 1
Autor: JeFFom | Publicado: 2011-10-19T18:02:00-02:00

O mundo globalizado é consequência das tecnologias que foram surgindo a partir do processo de tentativa e erro e refinamento desses processos. A partir disso foram surgindo novas metodologias e processos que facilitaram o desenvolvimento e progresso em diversas áreas.


Uma das dificuldades enfrentadas ainda é a organização das informações e passos para formalizar um processo, que pode ser extremamente confuso se somete existir um documento que explica a sua implementação. Para facilitar a implementação de um processo normalmente são usados diagramas e figuras para facilitar o entendimento e dar uma visão melhor. Mas um outro problema surge no meio disso, se cada departamento e empresa adotar um modelo, isso faz com que a ferramenta que visava facilitar o entendimento do processo na verdade dificulte a aprendizagem dele pela falta de padronização.


Aí então é que entra o UML. O UML é uma linguagem que foi criada visando facilitar a elaboração de modelos para entender mais facilmente um processo. Criado pela Rational Software e o Object Management Group (OMG), ela é uma linguagem amplamente utilizada por padronizar a criação de modelos e diagramas.


O UML é uma linguagem para especificar, visualizar, construir e documentar artefatos de um sistema, não se limitando a projetos de softwares. Os principais objetivos do UML são:

Prover aos usuários com uma linguagem visual e expressiva para eles poderem desenvolver e trocar modelos significantes de forma prática.
Prover extensões e mecanismos especializados para&nbsp;estender conceitos chave.
&nbsp;Ser independente de qualquer linguagem de programação(i.e. C++, Java) e processo de desenvolvimento(i.e. RUP, SCRUM)
Prover uma formalização para o entendimento da modelagem pelo UML
Encorajar o crescimento das ferramentas de Orientação Objecto no mercado.
Dar suporte a conceitos de mais alto nível como projetos colaborativos, frameworks, patterns e componentes.
Integrar boas práticas
Agora é importante entender o que o UML não&nbsp;é:Uma linguagem visual de programação, mas é uma linguagem visual de modelagem
Uma especificação de ferramenta ou repositório, mas uma especificação para uma linguagem de modelagem.
Um processo, mas ela permite a elaboração de um processo.

Diagramas UML


O UML permite a criação de diversos tipos de diagramas para diversas situações e/ou fases de um processo ou de um projeto.
Os mais comuns são:

Diagramas de Caso de Uso
Diagramas de Classe
Diagramas de Sequência
Diagramas de Colaboração
Diagramas de Estado
Diagramas de Atividade
Diagramas de Componentes
Diagramas de Distribuição
Diagramas de Entidade-Associação

Diagramas de caso de uso
É um diagrama que associa os casos de uso com os atores do processo




O Umbrello UML Modeller mostrando um Diagrama de Caso de Uso
Esses diagramas não servem para visualizar o funcionamento do sistema e sim para fornecer uma visão da comunicação de cada caso com cada ator do projeto e seu papel nele. De forma geral serve para mostrar o que o sistema deve fazer sem especificar como deve ser feito.



Diagramas de Classe


Talvez a forma mais clássica de diagrama no UML, amplamente utilizado em diversos materiais para facilitar a visualização da orientação objecto em um sistema, mostra o papel de cada classe no sistema e sua relação com outras classes e/ou entidades.

Exemplo de um diagrama da classe Carro
Na figura pode-se ver que existe na classe Carro os atributos modelo e ano podendo ser mostrado o seu tipo, assim como os métodos Carro(), getModel(), getAno(), setModelo() e setAno(). É um exemplo simples, poderia ser mais detalhado mas isso varia de acordo com o diagrama e projeto.Na representação de uma classe em UML tem-se o nome da classe, seus atributos e suas funções. Podemos determinar o nível de acesso dos atributos e métodos da seguinte forma:
&nbsp; &nbsp; Para os atributos e métodos respectivamente:
+&nbsp;indica atributos&nbsp;públicos
#&nbsp;indica atributos&nbsp;protegidos
-&nbsp;indica atributos&nbsp;privados

+&nbsp;indica&nbsp;métodos&nbsp;públicas
#&nbsp;indica&nbsp;métodos&nbsp;protegidas
-&nbsp;indica&nbsp;métodos&nbsp;privadas
Relação de associação
A associação serve para mostrar que classes estão "conectadas", ou seja elas interagem de alguma maneira com outra classe e também pode servir para mostrar a multiplicidade da relação.
Ex: Um veículo só possui um proprietário, mas um proprietário pode ter até n veículos.
Relação de Generalização


É uma relação que indica "herança" das classes, as classes derivadas na parte sem seta e a classe base ou "pai" na parte da seta.


Relação de Composição&nbsp;


Relação de Composição


Essa relação indica uma associação forte entre as classes. Isto significa que Composições formam relacionamentos todo-parte também, mas o relacionamento é tão forte que as partes não pode existir independentes. Elas existem somente dentro do todo, e se o todo é destruído as partes morrem também.Ex. Um motor não pode existir sem um carro (estou apenas dando um exemplo seguindo a figura), portanto se um carro é destruído o motor também é
Relação de Agregação 





Agregações são um tipo especial de associação no qual as duas classes participantes não possuem em nível igual, mas fazem um relacionamento “todo-parte”. Uma Agregação descreve como a classe que possui a regra do todo, é composta (tem) de outras classes, que possuem a regra das partes. Para Agregações, a classe que age como o todo sempre tem uma multiplicidade de um.&nbsp;
Ex: As rodas do carro podem existir sem o carro, se um carro é destruído as rodas podem continuar existindo sem ele.




Fontes:
Sinan Si Alhir, Understanding the Unified Modeling Language (UML),
http://sites.google.com/site/salhir

/http://www.methodsandtools.com/archive/archive.php?id=76p2


http://atlas.kennesaw.edu/~dbraun/csis4650/A&amp;D/UML_tutorial/what_is_uml.htm


http://docs.kde.org/stable/pt_BR/kdesdk/umbrello/uml-basics.html