Apostila de uml

Post on 25-Jun-2015

630 views 0 download

Transcript of Apostila de uml

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

UML: Visão GeralUML: Visão Geral

Gilberto Ribeiro de Queirozgribeiro@dpi.inpe.br

29 de Fevereiro de 2008.

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

SumárioSumário

● UML:– Motivação

– Diagramas

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

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!

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

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

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

Diagramas de Casos de Uso

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

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

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

Diagrama de Atividades

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.

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

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

Diagrama de Classes

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

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

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

AssociaçãoAssociação

class Proprietario{ private:

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

};

class Lote{ private:

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

};

GeneralizaçãoGeneralização

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

Superclasse

Subclasses

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

Agregação

Composição

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

Diagrama de Objetos

Diagrama de ObjetosDiagrama de Objetos

Diagrama de Seqüência

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!

Diagrama de SeqüênciaDiagrama de Seqüência

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

Diagrama de Estados

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

Diagrama EstadosDiagrama Estados

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.

Diagrama de Pacotes

UML: PackagesUML: Packages

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

– Organizar o modelo

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

Diagrama de Componentes

Diagrama de ComponentesDiagrama de Componentes

Diagrama de Implantação

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