Você está na página 1de 44

UML - Unified Modeling Language

UML
Unified Modeling Language
Daniel Destro do Carmo Softech Network Informtica daniel@danieldestro.com.br

UML - Unified Modeling Language


Modelagem de Sistemas Orientados a Objetos Antigamente no havia uma forma padro de se analisar e modelar sistemas orientados a objetos. Diferentes metodologias levavam a um desentendimento e confuso por parte de analistas e desenvolvedores, por suas diferentes caractersticas, elementos conceituais e notao. Algumas metodologias eram boas em determinadas caractersticas, mas ruins ou inexistentes em outras necessidades da anlise e modelagem OO. Grady Booch, James Rumbaugh e Ivar Jacobson (os trs amigos) se juntaram, unificaram suas metodologias e criaram a UML, pegando o melhor de cada e melhorando com o suporte e ajuda da comunidade.

UML - Unified Modeling Language


Unified Modeling Language (UML)

O que

UML - Unified Modeling Language


Unified Modeling Language (UML) UML uma linguagem de modelagem de sistemas, usada para: especificar, modelar, visualizar e documentar os modelos e artefatos de sistemas OO e no-OO, baseando-se em diagramas. A UML pode ser usada com todos os processos durante o ciclo de desenvolvimento do projeto (anlise de requisitos, anlise de sistema, design, programao e testes). A UML foi criada por Grady Booch, Jim Rumbaugh e Ivar Jacobson, em 1997, e hoje mantida pela OMG (Object Management Group).

UML - Unified Modeling Language


Fases do Desenvolvimento Anlise de Requisitos: Fase que captura as intenes e necessidades dos usurios do sistema, atravs das funes desejadas no sistema, chamadas de Casos de Uso. Anlise: Onde se cria as primeiras abstraes e mecanismos presentes no domnio do problema. Design (Projeto): O resultado da anlise expandido em solues tcnicas. As classes do domnio do problema so mescladas com classes de infra-estrutura. o detalhamento para a fase de programao. Programao: Os modelos criados so convertidos em cdigos de linguagem. Testes: Testes unitrios, testes de integrao e testes de aceitao.

UML - Unified Modeling Language


Por que usar UML? Desenvolver o modelo de uma aplicao antes de constru-la, to essencial quanto ter uma planta para a construo de uma casa. Bons modelos so essenciais para a comunicao entre os times de projetos e para assegurar a beleza arquitetural. Com o aumento da complexidade dos sistemas, importncia conhecer boas tcnicas de modelagem. Ter um rigoroso padro de linguagem de modelagem um fator essencial para o sucesso de um projeto. Como a UML se tornou uma notao padro da indstria de arquitetura de software, ela assunto abordado em muitos livros, seminrios e sites.

UML - Unified Modeling Language


Notao da UML A UML dividida em algumas partes, como segue: Vises: Mostram os diferentes aspectos do sistema, dando enfoque a ngulos e nveis de abstraes diferentes, construindo uma viso completa do sistema a ser construdo. Modelos de Elementos: So os conceitos utilizados nos diagramas. Representam definies comuns da OO. Mecanismos Gerais: Provm comentrios suplementares, informaes ou semntica sobre os elementos dos modelos. Diagramas: So grficos que descrevem o contedo em uma viso. A UML possui vrios tipos de diagramas que, combinados, formam todas as vises do sistema.

UML - Unified Modeling Language


Vises Os sistemas so, geralmente, compostos por diferentes nveis de vises. Cada viso descrita por um nmero de diagramas que contm informaes que do nfase aos aspectos particulares do sistema. Os diagramas podem fazer parte de mais de uma viso do sistema. As vises do sistema so: Viso de Casos de Uso Viso de Componentes Viso Lgica Viso de Organizao Viso de Concorrncia

UML - Unified Modeling Language


Vises Viso de Casos de Uso: Descreve as funcionalidades do sistema desempenhada pelos atores externos. a viso central, base para as outras vises do sistema. Diagramas de Casos de Uso e eventualmente Atividades. Viso de Componentes: Descreve a implementao dos mdulos e suas dependncias. Consiste nos componentes dos diagramas. Viso Lgica: Descreve como as funcionalidades do sistema sero implementadas. Especifica a estrutura esttica e dinmica. Diagramas de Classe e Objetos e Diagramas de Estado, Seqncia, Colaborao e Atividades. Viso de Organizao: Mostra a organizao fsica do sistema, os computadores, perifricos etc e como eles se conectam entre si. Diagrama de Execuo. Viso de Concorrncia: Trata da diviso do sistema em processos e processadores. Diagramas de Estado, Seqncia, Colaborao e Atividade.

UML - Unified Modeling Language


Modelos de Elementos da UML Os elementos da UML so blocos de construo para os modelos dos diagramas e so essenciais para o entendimento da UML. Cada elemento tem um propsito diferente, diferentes regras e notaes. Alguns elementos podem ser usados e diferentes diagramas. Existem um grande conjunto de elementos disponveis na especificao. Vamos ver alguns destes elementos especificados pela UML.

UML - Unified Modeling Language


Modelos de Elementos da UML Caso de Uso
a descrio de um conjunto de seqncias de aes realizadas pelo sistema, que proporciona resultados observveis de valor para um determinado ator. Um caso de uso realizado por uma colaborao. Graficamente representado por uma elipse de linhas contnuas, incluindo somente seu nome.

Login

Pedido de Compra

UML - Unified Modeling Language


Modelos de Elementos da UML Ator
O Ator algum ou algo externo ao sistema, mas que vai interagir com o sistema. Atores so representados como bonecos.

UML - Unified Modeling Language


Modelos de Elementos da UML Classe
a descrio de conjunto de objetos que compartilham os mesmos atributos e relacionamentos (estado), operaes e semntica (comportamento). As classes podem implementar uma ou mais interfaces e, graficamente, so representadas por retngulos, com trs divises: Nome da Classe, Conjunto de Atributos e Conjunto de Mtodos.

Venda valorTotal aprovar( ) concretizar( )

UML - Unified Modeling Language


Modelos de Elementos da UML Objeto
Um objeto uma instncia de uma classe, em tempo de execuo. Os objetos so graficamente representados por um retngulo com o nome sublinhado, ou o nome seguido de dois-pontos e o nome da classe do seu tipo.

venda1:Venda

umaPessoa

UML - Unified Modeling Language


Modelos de Elementos da UML Interface
um elemento que define uma coleo de operaes que especificam servios de uma classe ou componente. Uma interface representa todo o comportamento externamente visvel do elemento. Pode representar todo o comportamento, ou apenas parte dele. A interface define um conjunto de especificaes de operaes, mas nunca de um conjunto de implementaes de operaes. representada graficamente por um crculo e o respectivo nome. Uma interface raramente aparece sozinha.

DAO

PessoaDAO inserir( ) remover( )

Interface DAO inserir( ) remover( )

PessoaDAO inserir( ) remover( )

UML - Unified Modeling Language


Modelos de Elementos da UML Estado
Todo os objetos possuem um estado, que o resultado das atividades executadas por ele. O estado representado por um retngulo com os cantos arredondados e o nome do evento dentro do desenho.

Nome do Evento

UML - Unified Modeling Language


Modelos de Elementos da UML Componente
a parte modular de um sistema, cujo comportamento definido pelas suas interfaces. O trabalho interno dos componentes deve ser invisvel, e o seu uso ser independente de plataforma. Geralmente cdigos-fonte, DLLs, Java Beans e outros artefatos so considerados componentes. Graficamente representado por um retngulo com duas abas na lateral esquerda.

Info.dll

Conta.class

UML - Unified Modeling Language


Modelos de Elementos da UML N
Um n uma pea fsica de equipamento, na qual o sistema ser disponibilizado, por exemplo uma estao de trabalho ou um servidor. O n geralmente contm os componentes e outras partes executveis do cdigo, que podem ser ligados a processos em particular ou espaos de execuo. O ns so usados nos diagramas de deployment, para modelar o deploy de um sistema, e para ilustrar a alocao fsica dos artefatos implementados. Graficamente representado como um cubo.

UML - Unified Modeling Language


Modelos de Elementos da UML Colaborao
Define as iteraes e o comportamento cooperativo, resultado da soma das funes dos elementos. Assim, as colaboraes contm dimenses estruturais e comportamentais. Graficamente so representadas como elipses tracejadas com o seu nome. Compra :pedido Compra :venda :itens

UML - Unified Modeling Language


Modelos de Elementos da UML Nota
A nota apenas um smbolo para representar restries e comentrios anexados a um elemento. Geralmente usa-se a nota para aprimorar os diagramas. Graficamente representada por um retngulo com um dos cantos com uma dobra na pgina.

UML - Unified Modeling Language


Modelos de Elementos da UML Pacote
um mecanismo de propsito geral para a organizao de elementos em grupo. Graficamente representado como um retngulo com uma guia.

Pacote 1

UML - Unified Modeling Language


Modelos de Elementos da UML - Relacionamentos Relacionamentos
Os elementos dos modelos UML esto ligados uns aos outros, especificando o que cada elemento significa ao outro e qual o grau de ligao deles, ou seja, qual a relao lgica entre os elementos. A estas ligaes, damos o nome de relacionamento. Existem diferentes tipos e graus de relacionamentos. So eles: Associao Generalizao Dependncia Refinamento

UML - Unified Modeling Language


Modelos de Elementos da UML - Relacionamentos Associaes
A associao representa uma ligao entre dois elementos. Geralmente so expressas como uma linha slida, de um elemento ao outro, e com um verbo (ou substantivo) que qualifique a associao.
Cliente possui ContaCorrente

As associaes ainda podem expressar a cardinalidade e a navegao (sentido) da associao. A cardinalidade (ou multiplicidade) indica quantos elementos so possveis de cada lado da associao e pode ser expressada como um nmero ou um intervalo.
1 *

Cliente

ContaCorrente

UML - Unified Modeling Language


Modelos de Elementos da UML - Relacionamentos
Associao Recursiva: Acontece quando um elemento se conecta a ele mesmo, e associao tem alguma semntica no modelo.

Pessoa
marido

esposa

Associao Exclusiva: Quando algumas combinaes de associaes no so possveis no domnio do problema. uma restrio entre duas ou mais associaes.
Contrato {ou}

Pessoa

Empresa

UML - Unified Modeling Language


Modelos de Elementos da UML - Relacionamentos
Associao de Classe: Uma classe pode ser associada a uma associao. Serve para adicionar informaes extras associao existente.
Cliente Processo

Fila

Associao Ternria: Usada quando mais de duas classes podem se associar entre si.
Contrato Cliente

Regras Contratuais

UML - Unified Modeling Language


Modelos de Elementos da UML - Relacionamentos
Agregao: Este um caso particular de associao. Indica que um elemento parte ou est contida em outra classe. Representa uma relao do tipo parte/todo.
Equipe Jogador

Agregao de Composio: uma relacionamento onde um elemento est contido em outro, ou seja a vida de um depende do outro, e o seus tempos de vida so os mesmos.

Pessoa

Corao

UML - Unified Modeling Language


Modelos de Elementos da UML - Relacionamentos
Generalizaes A generalizao um relacionamento entre um elemento mais geral e um mais especfico. O elementos mais especfico possui todas as caractersticas do seu elemento mais geral, como as propriedades e seu comportamento, alm de poder adicionar mais caractersticas a ele mesmo. As generalizaes podem ser normal e restrita. As restritas se dividem em sobreposio, disjuntiva, completa e incompleta.
Veculo
{sobreposio} {completa}

ContaCorrente

Pessoa

Carro Poupana Normal

Barco

Homem

Mulher

CarroAnfbio

UML - Unified Modeling Language


Modelos de Elementos da UML - Relacionamentos
Dependncia A dependncia uma conexo semntica entre dois elementos, um independente e outro dependente. Qualquer alterao no elemento independente pode afetar o elemento dependente. Em classes, a dependncia indica que o elemento apenas instancia e/ou usa o elemento independente, sem manter uma relao duradoura com o elemento.

Aplicao

<< depende >>

Janela

UML - Unified Modeling Language


Modelos de Elementos da UML - Relacionamentos
Refinamento O relacionamento de refinamento ocorre entre dois elementos parecidos, em diferentes nveis de abstrao. Um refinamento pode acontecer entre um tipo e uma classe que o realiza, nesse caso chamado de realizao. Refinamento tambm pode ocorrer entre uma classe de anlise e uma classe de design grfico, ou entre um alto e um baixo nvel de descrio. Refinamento tambm usado para modelar diagramas de implementaes diferentes da mesma coisa, uma simples, e outra mais complexa. O Refinamento usado no modelo de coordenao. Em grandes projetos, todos os modelos devem ser coordenados.
ListaContatos

ListaContatosUI

UML - Unified Modeling Language


Mecanismos Gerais da UML A UML utiliza alguns mecanismos para tratar de informaes adicionais, sendo um ponto de extenso da linguagem. Esses mecanismos so os Ornamentos e as Notas.

Carlos:Cliente

ListaClientes
Mantm uma lista de objetos Cliente.

UML - Unified Modeling Language


Diagramas da UML Com a UML possvel modelar os projetos de sistemas, baseados em diagramas. Os diagramas so divididos, basicamente, em: Diagramas Estruturais: diagrama de classes, diagrama de objetos, diagrama de componentes e diagrama de disponibilizao. Diagramas de Comportamento: diagrama de casos de uso, diagrama de seqncia, diagrama de atividades, diagrama de colaborao e diagrama de estados. Diagramas de Gerenciamento do Modelo: pacotes, subsistemas e modelos.

UML - Unified Modeling Language


Estudo de Caso Para nosso aprendizado, usaremos um caso de estudo simples. Imagine um loja, que vende seus produtos na internet. Os usurio podero fazer o login no site, escolher os produtos que deseja adquirir e consolidar o seu pedido, com a efetuao da compra, no caso, a venda, para a loja.

UML - Unified Modeling Language


Diagrama de Casos de Uso O Diagrama de Casos de Uso serve para visualizar os relacionamentos entre os atores e os casos de uso do sistema (cenrios), numa viso geral. Serve para levantar os requisitos funcionais do sistema.

UML - Unified Modeling Language


Diagrama de Atividades O Diagrama de Atividades mostra o fluxo de controle. As atividades so representadas como retngulos com cantos arredondados. Tipicamente as atividades so estados de ao estados que transitam para outro estado, assim que a ao tenha sido completada. Este diagrama pode ser usado em qualquer nvel: fluxo dos casos de uso, fluxo no nvel de programao, fluxo das regras de negcio, etc.

UML - Unified Modeling Language


Diagrama de Classes O Diagrama de Classes mostra a estrutura esttica do modelo da aplicao. Este diagrama exibe as classes do sistema e o grau do relacionamentos entre elas.

UML - Unified Modeling Language


Diagrama de Objetos O Diagrama de Objetos muito similar ao Diagrama de Classes e utiliza quase a mesma notao. Este diagrama mostra uma fotografia dos objetos existentes em um determinado momento na execuo do sistema. So muito teis para exemplificar relacionamentos complexos entre objetos em determinado momento. Este diagrama tambm usado no Diagrama de Colaborao.

UML - Unified Modeling Language


Diagrama de Estados O Diagrama de Estados serve para mostrar todos os estados possveis dos objetos de um classe do modelo, e que eventos do sistema causam essas mudanas de estado. No h a necessidade de representar os estados dos objetos de todas as classes.

UML - Unified Modeling Language


Diagrama de Seqncia O Diagrama de Seqncia mostra a interao entre os objetos da aplicao arranjados numa linha do tempo. So utilizados para descrever a seqncia de um fluxo ou caso de uso da aplicao. muito til para se levantar quais so os envolvidos no fluxo e definir a interface de alguns objetos.

UML - Unified Modeling Language


Diagrama de Colaborao O Diagrama de Colaborao semelhante ao Diagrama de Seqncia, mostrando a colaborao dinmica entre os objetos, sem levar em conta a linha do tempo. Neste diagrama, alm da troca de mensagens, pode-se perceber o relacionamento entre os objetos.

UML - Unified Modeling Language


Diagrama de Componentes O Diagrama de Componentes mostra o lado funcional, expondo a relao entre seus componentes e suas dependncias.

UML - Unified Modeling Language


Diagrama de Execuo O Diagrama de Execuo mostra o lado funcional, exibindo a arquitetura fsica do hardware e do software do sistema.

UML - Unified Modeling Language


Perguntas e Resposta

???

UML - Unified Modeling Language


Fim

Obrigado!

Você também pode gostar