You are on page 1of 38

MINISTÉRIO DA CIÊNCIA E TECNOLOGIA

INSTITUTO NACIONAL DE PESQUISAS ESPACIAIS

UML: Visão Geral


Gilberto Ribeiro de Queiroz
gribeiro@dpi.inpe.br

Disponível em: http://www.dpi.inpe.br/~gribeiro/apresentacoes

29 de Fevereiro de 2008.
Sumário

● UML:
– Motivação
– Diagramas

● Oficina:
– Criando diagramas UML com o JUDE Community 5
UML

● Segundo a OMG, a Unified Modeling Language é


uma linguagem visual para especificação,
construção e documentação de artefatos de
software

● O propósito da modelagem (criação de


esquemas UML) é, principalmente, para
entender e não para documentar!

● UML sozinha não resolve nada:


– Ela deve ser usada dentro de um processo de
desenvolvimento!
Processo de Desenvolvimento de Sistemas

● Estabelece uma abordagem para a construção,


desenvolvimento e manutenção de software:
– Ex: UML + OpenUP (definição das fases de
desenvolvimento e estabelecimento das regras do
jogo!)
● Atualmente metodologias são iterativas e
evolucionárias:
– Ciclo repetitivo, com fases de curta duração
– Fases contemplam todas as etapas do ciclo de
desenvolvimento (requisitos, análise, projeto,
implementação, teste e validação)
– As fases não tentam varrer todo o conhecimento do
problema, isso é obtido ao longo do tempo
Por que / Para que usar UML?

● Vamos usar os diagramas UML para:


– Ajudar a conceber nossas idéias, em relação ao
sistema que estivermos projetando
● Pensar antes de codificar!
– Apresentar nossas idéias ao grupo de forma que
todos possam interagir e discutir um determinado
ponto
● Aumentar a participação e envolvimento do time!
– Documentar nossas idéias quando elas já estiverem
bem consolidadas para que novos integrantes e
novos colaboradores possam acelerar sua
compreensão dos sistemas desenvolvidos pelo grupo
UML

● Diagramas servem para capturar diferentes


visões do sistema:
– Estrutural: estática
● Diagrama de Classes
● Diagrama de Objetos
● Diagrama de Componentes
● Diagrama de Implantação
– Comportamental: dinâmica
● Diagrama de Casos de Uso
● Diagrama de Seqüência
● Diagrama de Atividades
● Diagrama de Estados
● Diagrama de Colaboração
Diagramas de Casos de Uso
UML: Diagrama de Casos de Uso

● Composto por:
– Atores:
● Pessoas que desempenham algum papel no sistema
● Entidades externas, como outros sistemas, que interagem
com o sistema sendo projetado
– Casos de Uso:
● Processos ou funções que o sistema deve realizar de forma
automática ou mesmo manual
● Geralmente associadas a descrições textuais
– Relacionamentos:
● Atores x Casos de Uso
● Casos de Uso x Casos de Uso
UML: Diagrama de Casos de Uso
Descrição Casos Uso

#05 Gerenciar Contas Usuários


Quem incia Ator Administrador
Pré-Condição Nenhum outro administrador deve estar logado no sistema
1. O Administrador informa seu login/senha
2. O sistema verifica na ACL se o usuário possui privilégios especiais
3. Se o usuário não for um super-usuário interrompe processo
4. O sistema mostra a lista de usuários e grupos
Cenário 1: 5. O Administrador entra com a seguintes informações:
Criar Nova Conta - nome do novo usuário, diretório home, senha inicial, privilégios,
data expiração da conta
6. O servidor valida os dados
7. As informações da nova conta são gravadas na ACL
Fluxo de Exceção
Diagrama de Atividades
Diagrama de Atividades

● É usado para mostrar uma seqüência de


atividades.

● Mostra o fluxo de trabalho (workflow) a partir


de um ponto inicial até um ponto final,
detalhando as decisões do caminho tomado
durante a execução das tarefas.

● Este diagrama possui várias aplicações, desde a


definição do fluxo básico de um programa até a
definição de um processo com as suas tomadas
de decisões e ações.
Diagrama de Atividades
Ações

Execução em Paralelo
Estado Inicial

Ponto de Tomada de Decisão

Ponto de Junção

Estado Final
Diagrama de Atividades

● Podemos ainda ter partições:


– Elas ajudam a separar as ações em blocos
– Ex: ações realizadas pelo departamento A e ações
realizadas pelo departamento B

● Podemos ter o envio de objetos entre uma ação


e outra:
– Ex: Pedido
Diagrama de Classes
Representação de uma Classe

Nome da classe

Compartimento dos Atributos

Compartimento dos Métodos

Acessibilidade dos Atributos e Métodos:


+ atributo ou método público
# atributo ou método protegido
- atributo ou método privado
Representação de um Classe

Atributos estáticos aparecem sublinhados


Métodos Virtuais aparecem em itálico

Atributos estáticos aparecem sublinhados


Métodos estáticos aparecem sublinhados
Representação de uma Interface

A classe TePolygon Implementa a Interface

Interface Geometry:
pode ter atributos e
métodos como as classes
Associação

class Proprietario class Lote


{ {
private: private:

string nome; double area;


vector<Lote*> lotes; Proprietario* proprietario_;

public: public:

string getNome(); double getArea();

}; };
Generalização

Superclasse

Subclasses

A classe TeGeometry é abstrata: por isso o itálico


Agregação/Composição

Agregação
Composição
Diagrama de Classes – Outras Considerações

● UML dá o suporte para classes templates

● Herança de classes templates pode ser


expressa com “bind” de templates

● Classes de associações:
– servem para qualificar os relacionamentos
Diagrama de Objetos
Diagrama de Objetos
Diagrama de Seqüência
Diagrama de Seqüência

● Apresenta a ordem temporal das mensagens


enviadas e recebidas pelos objetos

● Mostram a troca de mensagens entre diversos


objetos num cenário específico

● Na minha visão (Gribeiro):


– Ajuda a descobrir onde colocar os métodos!
– Ajuda a verificar se a comunicação entre as classes
está coerente!
Diagrama de Seqüência
Cenário: Editar Nova Feição Geográfica
Diagrama de Estados
Diagrama de Estado

● Modela o comportamento de um objeto


individual
● Especifica as seqüências de estados pelos quais
um objeto passa durante seu tempo de vida em
resposta a eventos
Diagrama Estados
Diagrama de Estados

● Choice:
– Usado quando temos um estado em que o objeto
está escolhendo o próximo estado.
– Ex: Escolhendo Tipo de Mensagem:
● HTTP => Entra no estado Criando Mensagem HTTP
● Fax => Entra no estado Criando Mensagem FAX
● SMS => Entra no estado Criando Mensagem SMS
● Histórico de Estado:
– Ex: Máquina Lavar => quando religada precisa
lembrar em qual estado estava.
Diagrama de Pacotes
UML: Packages

● Organização Lógica dos Artefatos:


– Agrupar artefatos
– Organizar o modelo
Diagrama de Pacotes
(Package Diagram)
Diagrama de Componentes
Diagrama de Componentes
Diagrama de Implantação
UML: Diagrama de Implantação

You might also like