apostila de uml
TRANSCRIPT
![Page 1: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/2.jpg)
SumárioSumário
● UML:– Motivação
– Diagramas
● Oficina:– Criando diagramas UML com o JUDE Community 5
![Page 3: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/7.jpg)
Diagramas de Casos de Uso
![Page 8: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/9.jpg)
UML: Diagrama de Casos de UsoUML: Diagrama de Casos de Uso
![Page 10: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/11.jpg)
Diagrama de Atividades
![Page 12: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/15.jpg)
Diagrama de Classes
![Page 16: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/20.jpg)
GeneralizaçãoGeneralização
A classe TeGeometry é abstrata: por isso o itálico
Superclasse
Subclasses
![Page 21: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/21.jpg)
Agregação/ComposiçãoAgregação/Composição
Agregação
Composição
![Page 22: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/23.jpg)
Diagrama de Objetos
![Page 24: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/24.jpg)
Diagrama de ObjetosDiagrama de Objetos
![Page 25: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/25.jpg)
Diagrama de Seqüência
![Page 26: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/27.jpg)
Diagrama de SeqüênciaDiagrama de Seqüência
Cenário: Editar Nova Feição Geográfica
![Page 28: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/28.jpg)
Diagrama de Estados
![Page 29: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/30.jpg)
Diagrama EstadosDiagrama Estados
![Page 31: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/32.jpg)
Diagrama de Pacotes
![Page 33: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/33.jpg)
UML: PackagesUML: Packages
● Organização Lógica dos Artefatos:– Agrupar artefatos
– Organizar o modelo
![Page 34: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/34.jpg)
Diagrama de PacotesDiagrama de Pacotes(Package Diagram)(Package Diagram)
![Page 35: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/35.jpg)
Diagrama de Componentes
![Page 36: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/36.jpg)
Diagrama de ComponentesDiagrama de Componentes
![Page 37: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/37.jpg)
Diagrama de Implantação
![Page 38: Apostila de uml](https://reader034.vdocuments.net/reader034/viewer/2022042516/558bec39d8b42ac0158b46df/html5/thumbnails/38.jpg)
UML: Diagrama de ImplantaçãoUML: Diagrama de Implantação