Apostila de uml

38
MINISTÉRIO DA CIÊNCIA E TECNOLOGIA INSTITUTO NACIONAL DE PESQUISAS ESPACIAIS UML: Visão Geral UML: Visão Geral Gilberto Ribeiro de Queiroz [email protected] 29 de Fevereiro de 2008. Disponível em: http://www.dpi.inpe.br/~gribeiro/apresentacoes

Transcript of Apostila de uml

Page 1: Apostila de uml

MINISTÉRIO DA CIÊNCIA E TECNOLOGIAINSTITUTO NACIONAL DE PESQUISAS ESPACIAIS

UML: Visão GeralUML: Visão Geral

Gilberto Ribeiro de [email protected]

29 de Fevereiro de 2008.

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

Page 2: Apostila de uml

SumárioSumário

● UML:– Motivação

– Diagramas

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

Page 3: Apostila de uml

UMLUML

● 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!

Page 4: Apostila de uml

Processo de Desenvolvimento de SistemasProcesso 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

Page 5: Apostila de uml

Por que / Para que usar UML?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

Page 6: Apostila de uml

UMLUML

● 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

Page 7: Apostila de uml

Diagramas de Casos de Uso

Page 8: Apostila de uml

UML: Diagrama de Casos de UsoUML: 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

Page 9: Apostila de uml

UML: Diagrama de Casos de UsoUML: Diagrama de Casos de Uso

Page 10: Apostila de uml

Descrição Casos UsoDescrição Casos Uso

#05 Gerenciar Contas Usuários

Quem incia Ator Administrador

Pré-Condição Nenhum outro administrador deve estar logado no sistema

Fluxo de Exceção

Cenário 1:Criar Nova Conta

1. O Administrador informa seu login/senha2. O sistema verifica na ACL se o usuário possui privilégios especiais3. Se o usuário não for um super-usuário interrompe processo4. O sistema mostra a lista de usuários e grupos5. O Administrador entra com a seguintes informações: - nome do novo usuário, diretório home, senha inicial, privilégios, data expiração da conta6. O servidor valida os dados7. As informações da nova conta são gravadas na ACL

Page 11: Apostila de uml

Diagrama de Atividades

Page 12: Apostila de uml

Diagrama de AtividadesDiagrama 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.

Page 13: Apostila de uml

Diagrama de AtividadesDiagrama de Atividades

Execução em Paralelo

Ponto de Junção

Ponto de Tomada de Decisão

Estado Final

Estado Inicial

Ações

Page 14: Apostila de uml

Diagrama de AtividadesDiagrama 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

Page 15: Apostila de uml

Diagrama de Classes

Page 16: Apostila de uml

Representação de uma ClasseRepresentaçã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

Page 17: Apostila de uml

Representação de um ClasseRepresentação de um Classe

Atributos estáticos aparecem sublinhados

Atributos estáticos aparecem sublinhados

Métodos estáticos aparecem sublinhados

Métodos Virtuais aparecem em itálico

Page 18: Apostila de uml

Representação de uma InterfaceRepresentação de uma Interface

Interface Geometry:pode ter atributos e métodos como as classes

A classe TePolygon Implementa a Interface

Page 19: Apostila de uml

AssociaçãoAssociação

class Proprietario{ private:

string nome; vector<Lote*> lotes; public: string getNome();

};

class Lote{ private:

double area; Proprietario* proprietario_; public: double getArea();

};

Page 20: Apostila de uml

GeneralizaçãoGeneralização

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

Superclasse

Subclasses

Page 21: Apostila de uml

Agregação/ComposiçãoAgregação/Composição

Agregação

Composição

Page 22: Apostila de uml

Diagrama de Classes – Outras ConsideraçõesDiagrama 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

Page 23: Apostila de uml

Diagrama de Objetos

Page 24: Apostila de uml

Diagrama de ObjetosDiagrama de Objetos

Page 25: Apostila de uml

Diagrama de Seqüência

Page 26: Apostila de uml

Diagrama de SeqüênciaDiagrama 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!

Page 27: Apostila de uml

Diagrama de SeqüênciaDiagrama de Seqüência

Cenário: Editar Nova Feição Geográfica

Page 28: Apostila de uml

Diagrama de Estados

Page 29: Apostila de uml

Diagrama de EstadoDiagrama 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

Page 30: Apostila de uml

Diagrama EstadosDiagrama Estados

Page 31: Apostila de uml

Diagrama de EstadosDiagrama 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.

Page 32: Apostila de uml

Diagrama de Pacotes

Page 33: Apostila de uml

UML: PackagesUML: Packages

● Organização Lógica dos Artefatos:– Agrupar artefatos

– Organizar o modelo

Page 34: Apostila de uml

Diagrama de PacotesDiagrama de Pacotes(Package Diagram)(Package Diagram)

Page 35: Apostila de uml

Diagrama de Componentes

Page 36: Apostila de uml

Diagrama de ComponentesDiagrama de Componentes

Page 37: Apostila de uml

Diagrama de Implantação

Page 38: Apostila de uml

UML: Diagrama de ImplantaçãoUML: Diagrama de Implantação