a projetos de softwares. Os principais objetivos do UML sao:Prover aos usuarios com uma linguagem visual e expressiva para eles poderem desenvolver e trocar modelos significantes de forma pratica.Prover extensoes e mecanismos especializados para estender conceitos chave. Ser independente de qualquer linguagem de programacao(i.e. C++, Java) e processo de desenvolvimento(i.e. RUP, SCRUM)Prover uma formalizacao para o entendimento da modelagem pelo UMLEncorajar o crescimento das ferramentas de Orientacao Objecto no mercado.Dar suporte a conceitos de mais alto nivel como projetos colaborativos, frameworks, patterns e componentes.Integrar boas praticasAgora e importante entender o que o UML nao e:Uma linguagem visual de programacao, mas e uma linguagem visual de modelagemUma especificacao de ferramenta ou repositorio, mas uma especificacao para uma linguagem de modelagem.Um processo, mas ela permite a elaboracao de um processo.Diagramas UMLO UML permite a criacao de diversos tipos de diagramas para diversas situacoes e/ou fases de um processo ou de um projeto.Os mais comuns sao:Diagramas de Caso de UsoDiagramas de ClasseDiagramas de SequenciaDiagramas de ColaboracaoDiagramas de EstadoDiagramas de AtividadeDiagramas de ComponentesDiagramas de DistribuicaoDiagramas de Entidade-AssociacaoDiagramas de caso de usoE um diagrama que associa os casos de uso com os atores do processoO Umbrello UML Modeller mostrando um Diagrama de Caso de UsoEsses diagramas nao servem para visualizar o funcionamento do sistema e sim para fornecer uma visao da comunicacao 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 ClasseTalvez a forma mais classica de diagrama no UML, amplamente utilizado em diversos materiais para facilitar a visualizacao da orientacao objecto em um sistema, mostra o papel de cada classe no sistema e sua relacao com outras classes e/ou entidades.Exemplo de um diagrama da classe CarroNa figura pode-se ver que existe na classe Carro os atributos modelo e ano podendo ser mostrado o seu tipo, assim como os metodos Carro(), getModel(), getAno(), setModelo() e setAno(). E um exemplo simples, poderia ser mais detalhado mas isso varia de acordo com o diagrama e projeto.Na representacao de uma classe em UML tem-se o nome da classe, seus atributos e suas funcoes. Podemos determinar o nivel de acesso dos atributos e metodos da seguinte forma: Para os atributos e metodos respectivamente:+ indica atributos publicos# indica atributos protegidos- indica atributos privados+ indica metodos publicas# indica metodos protegidas- indica metodos privadasRelacao de associacaoA associacao serve para mostrar que classes estao "conectadas", ou seja elas interagem de alguma maneira com outra classe e tambem pode servir para mostrar a multiplicidade da relacao.Ex: Um veiculo so possui um proprietario, mas um proprietario pode ter ate n veiculos.Relacao de GeneralizacaoE uma relacao que indica "heranca" das classes, as classes derivadas na parte sem seta e a classe base ou "pai" na parte da seta.Relacao de Composicao Relacao de ComposicaoEssa relacao indica uma associacao forte entre as classes. Isto significa que Composicoes formam relacionamentos todo-parte tambem, mas o relacionamento e tao forte que as partes nao pode existir independentes. Elas existem somente dentro do todo, e se o todo e destruido as partes