uml - apostila

92
Prof. Ricardo Terra

Upload: aline-botelho-schneider

Post on 09-Aug-2015

64 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: UML - Apostila

Prof. Ricardo Terra

Page 2: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 2

O que é UML?

UML (Unified Modeling Language) é uma família de notações gráficas, apoiada por um metamodelo único, que ajuda na descrição e no projeto de sistemas de software, particularmente daqueles construídos utilizando o estilo orientado a objetos (OO)

Esta definição é um tanto simplificada. Na verdade, para diferentes pessoas a UML tem significados diferentes

As linguagens gráficas de modelagem existem há muito tempo na indústria do software. O propulsor fundamental por trás de todas elas é o fato das linguagens de programação não estarem em um nível de abstração suficiente alto para facilitar discussões sobre projeto

Page 3: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 3

O que é UML?

A UML é um padrão relativamente aberto, controlado pelo OMG (Object Management Group), um consórcio aberto de empresas. O OMG foi formado para estabelecer padrões que suportassem interoperabilidade, especificamente de sistemas orientados a objetos. Talvez, o OMG seja mais conhecido pelo padrões CORBA (Commom Object Request Broker Architecture)

A UML nasceu da unificação das muitas linguagens gráficas de modelagem orientadas a objetos

Page 4: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 4

Diagramas UML

A UML 2.0 descreve 13 (treze) tipos de diagramas oficiais, indicando que 3 novos diagramas foram inseridos desde sua última versão

Nosso foco na disciplina não é exatamente ver todos, mas sim, aqueles mais comuns, são os diagramas mais utilizados:

AtividadesClassesInteração

SequênciaColaboração

Caso de Uso (CDU)

Page 5: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 5

Diagramas UML

Page 6: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 6

Significado da UML

Um dos problemas difíceis da UML é que, embora a especificação descreva com bastante detalhe o que é UML bem-formada, ela não tem muito a dizer a respeito do que significa UML fora do mundo refinado dos metamodelos UML

Não existe nenhuma definição formal sobre como a UML émapeada para qualquer linguagem de programação específica, isto é, você não vê um diagrama UML e dizer exatamente qual seria o código equivalenteNa prática, isto é suficiente para ser útil

Page 7: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 7

Onde começar com UML?

“Ninguém, nem mesmo seus criadores, entende ou utiliza tudo que há na UML. A maioria das pessoas utiliza um pequeno subconjunto da UML e trabalha com isto.” (FOWLER, 2005)

Podemos pensar em UML como o processo de engenharia de software RUP. Ambos são muito grandes, todavia ninguém o usa como um todo. As pessoas/empresas separam o que realmente acreditam que seja útil e o utilizam

Page 8: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 8

Referência Bibliográfica

FOWLER, Martin. UML Essencial. 3 ed. Porto Alegre: Bookman, 2005.

PENDER, Tom. UML, a bíblia. 2 reimp. Rio de Janeiro: Campus, 2004.

Page 9: UML - Apostila

Prof. Ricardo Terra

Page 10: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 2

Diagrama de Atividades

Os diagramas de atividades são uma técnica para descrever lógica de procedimento, processo de negócio e fluxo de trabalho

Se assemelha aos fluxogramas, mas a principal diferença é o fato dos diagramas de atividades suportarem comportamento paralelo

Page 11: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 3

Diagrama de Atividades

Um diagrama de atividades é normalmente composto pelos seguintes elementos:

AtividadeTransiçãoCondição de guardaDecisãoPonto de mergePonto de InícioPonto de FimConcorrência

BifurcaçãoSincronização

Veremos um pouco de cada um desses

Page 12: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 4

Atividades e transições

Uma atividade é uma etapa em um processo, onde algum trabalho está sendo realizadoA atividade é representada por um retângulo arredondado, contendo texto em forma livre

Um diagrama de atividades é uma série de atividades ligadas por transições, que são setas conectando cada atividadeNormalmente uma transição ocorre quando uma atividade éconcluída

Page 13: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 5

Atividades e transições

Page 14: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 6

Condição de Guarda

Em algumas situações, a transição só deve ocorrer se determinada condição ocorraUma condição de guarda pode ser atribuída com a intenção de restringir o uso daquela transiçãoA condição de guarda é uma condição dentro de conchetes em proximidade a seta de transição

Page 15: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 7

Decisões

Assim como no fluxograma, o losango do diagrama de atividades também representa um ícone de decisão. Uma seta sai do losango para cada valor possível da condição testada

A condição pode ser simples (como um booleano) ou mais abrangente

Cada opção é identificada por meio de uma condição de guarda. Cada condição de guarda precisa ser mutuamente exclusiva, de modo que somente uma opção possa ser selecionada a partir da decisão

Page 16: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 8

Decisões

Page 17: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 9

Ponto de merge

O ícone de losando também é usado para modelar um ponto de mergeO ponto de merge é um local onde dois caminhos alternativos se juntam e continuam como apenas 1 caminho

Page 18: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 10

Ponto de Início e de Fim

A UML também oferece ícone para iniciar e terminar um diagrama de atividade

Um ponto sólido indica o início do fluxo de atividadesUm “olho de boi” indica o ponto final

Somente deve existir um ponto de início por diagrama de atividade

Podem existir vários pontos de fim. Se quiser pode apontar todas suas transições apontando para o mesmo ponto de fim, mas todos estes pontos de fim significam a mesma coisa: “Parar todas as atividades do diagrama”

Page 19: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 11

Ponto de Início e de Fim

Page 20: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 12

Concorrência

A notação admite concorrência, que permite modelar os recursos das linguagens que foram criados após a invenção do fluxograma. Estes recursos são conhecidos como threads ou processos concorrentesPara demostrar que um processo simples inicia vários outros processos concorrentemente, o diagrama de atividades utiliza uma barra simples, chamada bifurcação

Cada transição de saída desta bifurcação é uma nova thread

Page 21: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 13

Concorrência

Para a sincronização de diversos processos paralelos é utilizada a mesma barra, todavia agora conhecida como barra de sincronizaçãoNesta barra de sincronização, chega diversos processos e saíapenas uma transição, que indica que o processamento concorrente acabou e o diagrama de atividades continua como uma única thread ou processo

Page 22: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 14

Concorrência

Page 23: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 15

Exemplo Completo

Ver página 119 do livro UML Essencial - 3ª edição.

Page 24: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 16

Page 25: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 17

Referência Bibliográfica

FOWLER, Martin. UML Essencial. 3 ed. Porto Alegre: Bookman, 2005.

PENDER, Tom. UML, a bíblia. 2 reimp. Rio de Janeiro: Campus, 2004.

Page 26: UML - Apostila

Prof. Ricardo Terra

Page 27: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 2

Casos de Uso

Os casos de uso são uma técnica para captar os requisitos funcionais de um sistema. Eles servem para descrever as interações típicas entre os usuários de um sistema e o próprio sistema, fornecendo uma narrativa de como o sistema é utilizado

Page 28: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 3

Abordagem

Nossa abordagem neste estudo será:Diagramas de casos de usoNarrativas de caso de uso

Page 29: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 4

Narrativa de um caso de uso

Não existe nenhuma maneira padronizada para escrever o conteúdo de um caso de uso e diferentes formatos funcionam bem em diferentes casos

O slide a seguir mostra um estilo comum de uso. Você começa escolhendo um dos cenários como sendo o cenário principal de sucesso (CPS). Da início ao corpo do caso de uso escrevendo o CPS como uma seqüência de passos numerados. Então, pega os outros cenários e os escreve como extensões, descrevendo-os em termos de variações em relação ao cenário principal de sucesso. As extensões podem ser bem-sucedidas – o usuário atinge o objetivo, como em 3a – ou falhas como em 6a

Page 30: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 5

Narrativa de um caso de usoNome: Comprar produto.

Pré-condições: Cliente com acesso a internet na página inicial do comércio eletrônico.

Cenário Principal de Sucesso:1. O cliente navega pelo catálogo e seleciona itens para comprar.2. O cliente vai para o caixa, isto é, fecha o carrinho de compra.3. O cliente preenche formulário de remessa (forma de pagamento; endereço da entrega; opção de entrega imediata ou em três

dias).4. O sistema apresenta a informação completa do faturamento, incluindo a remessa.5. O cliente autoriza a compra.6. O sistema confirma imediatamente a venda.7. O sistema envia uma confirmação para o cliente por e-mail.

Extensões:3a. Cliente regular:

.1: O sistema mostra a informação atual da remessa, a informação do preço e a informação de cobrança.

.2: O cliente pode aceitar ou escrever por cima desses padrões, retornando ao CPS no passo 6.

6a. O sistema falha na autorização de compra a crédito.1: O cliente pode inserir novamente a informação do cartão de crédito ou cancelar.

Pós-condições: Cliente finaliza sua compra.

Ver figura 9.1 da página 105 do livro UML Essencial – 3ª edição

Page 31: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 6

Diagrama de Caso de Uso

Um diagrama de caso de uso é normalmente composto pelos seguintes elementos:

Ator:Um papel desempenhado por uma pessoa, sistema, dispositivo ou mesmo uma empresa, que possui interesse na operação bem-sucedida do sistema

Page 32: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 7

Diagrama de Caso de Uso

Caso de UsoIdentifica um comportamento-chave do sistema. Sem esse comportamento, o sistema não preencherá os requisitos do ator. Cada caso de uso expressa um objetivo que o sistema precisa alcançar e/ou um resultado que ele precisa produzir

Page 33: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 8

Diagrama de Caso de Uso

AssociaçãoIdentifica uma relação entre atores e casos de usos. Cada associação torna-se um diálogo que deve ser explicado em uma narrativa de caso de uso. Cada narrativa oferece um conjunto de cenários como já foi visto anteriormente

Ver figura 12.12 e 12.13 das páginas 320-321 do livro UML, a Bíblia.

Page 34: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 9

Diagrama de Caso de Uso

Relacionamento include (inclusão)Identifica um caso de uso reutilizável, que é incorporado incondicionalmente na execução de outro caso de uso. A responsabilidade pela decisão sobre quando e por que usar o caso de uso incluído encontra-se no caso de uso que o chama

Ver figura 12.14 da página 322 do livro UML, a Bíblia.

Page 35: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 10

Diagrama de Caso de Uso

Relacionamento extend (extensão)Identifica um caso de uso reutilizável, que interrompe condicionalmente a execução de outro caso de uso para aumentar sua funcionalidade. A responsabilidade por decidir quando o caso de uso estendendo deve ser usado encontra-se com o caso de uso estendendo

Ver figura 12.15 da página 323 do livro UML, a Bíblia.

Page 36: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 11

Diagrama de Caso de Uso

«extend» X «include»

A seta do relacionamento é desenhada do caso de uso de extensão para o caso de uso em execução.A seta indica que o caso de uso de extensão está tomando a decisão se deverá interromper o caso de uso em execução.

A seta do relacionamento é desenhado do caso de uso em execução para o caso de uso incluído.A seta do relacionamento indica que o caso de uso básico direciona o caso de uso incluído para a execução.

O caso de uso de extensão pode ser usado.

O caso de uso incluído sempre éutilizado.

Aumentam o comportamento do caso de uso básico.ExtendInclude

Page 37: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 12

Diagrama de Caso de Uso

GeneralizaçãoIdentifica um relacionamento de herança entre atores.

Page 38: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 13

Diagrama de Caso de Uso – Exemplo

Ver figura 12.4 da página 314 do livro UML, a Bíblia.

Page 39: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 14

Diagrama de Caso de Uso

Como construir um diagrama de Caso de Uso (PENDER):1. Definir o contexto do sistema:

1. Identificar atores e suas responsabilidades.2. Identificar os casos de uso, os comportamentos do sistema,

em termos de objetivos específicos e/ou resultados que precisam ser produzidos.

2. Avaliar os atores e casos de uso para encontrar oportunidades de refinamento, como divisão ou merge de definições.

3. Avaliar os casos de uso para encontrar relacionamentos do tipo «include».

4. Avaliar os casos de uso para encontrar relacionamentos do tipo «extend».

5. Avaliar os atores para oportunidades de generalização (propriedades compartilhadas)

Page 40: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 15

Diagrama de Caso de Uso

Como construir um diagrama de Caso de Uso (FOWLER):Embora o diagrama de Caso de Uso às vezes seja útil, ele não é obrigatório. Em seu trabalho com casos de uso, não se esmere muito no diagrama. Em vez disto, concentre-se na narrativa (conteúdo textual) do caso de uso.A melhor maneira de pensar em um diagrama de caso de uso écomo um sumário gráfico do conjunto de casos de uso. O diagrama de casos de uso mostra os atores, os casos de uso e os relacionamentos entre eles.

Quais atores realizam quais casos de uso?Quais casos de uso incluem outros casos de uso?

A UML inclui outros relacionamentos entre os casos de uso, além da inclusão e da extensão, mas não é necessário nos aprofundarmos a este ponto.

Page 41: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 16

Referência Bibliográfica

FOWLER, Martin. UML Essencial. 3 ed. Porto Alegre: Bookman, 2005.

PENDER, Tom. UML, a Bíblia. 2 reimp. Rio de Janeiro: Campus, 2004.

Page 42: UML - Apostila

Prof. Ricardo Terra

Page 43: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 2

Diferenciação entre classe e objeto

As classes formam o alicerce do diagrama de classes. Assim, paratrabalhar com diagrama de classes, você precisa ter uma noção clara da diferença entre classes e objetos. Portanto:

Classe é a definição para um recurso. Ela inclui informações que descrevem os recursos de uma entidade e como ela pode ser utilizada.

Objetos, ao contrário, são instâncias de uma classe. Pode-se dizer que um objeto é uma entidade identificável de forma exclusiva de acordo com as regras definidas pela classe.

Page 44: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 3

Diagrama de Classes

“Se alguém chegar perto de você em um beco escuro e disser: “Psiu, quer ver um diagrama UML:”, esse provavelmente seria um diagrama de classes. A maioria dos diagramas UML que vejo é composta por diagrama de classes.” (FOWLER, 2005)

“O diagrama de classes provavelmente é o diagrama mais utilizado da UML. Na verdade, o diagrama de classes é a ferramenta de modelagem principal para descrever a própria UML.” (PENDER, 2004)

Page 45: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 4

Diagrama de Classes

Um diagrama de classes descreve os tipos de objetos presentes no sistema e os vários tipos de relacionamento estáticos existentes entre eles.

Os diagramas de classe também mostram as propriedades e operações de uma classe e as restrições que se aplicam àmaneira como os objetos estão conectados.

Page 46: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 5

Classe

Uma classe é uma descrição de um conjunto de objetos que partilham os mesmos atributos, operações, relações e semântica.

Por exemplo, na classe Cliente, "João da Silva" pode ser considerado um dos objetos num sistema que pretende manipular informação referente aos clientes de uma empresa.

Page 47: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 6

Classe

Uma classe é descrita por seus aspectos estruturais através de seus atributos e através de seus aspectos comportamentais através de suas operações.

Uma classe (seus atributos e operações) pode ser detalhada através de sua visibilidade e sua multiplicidade. Uma classe érepresentada como mostrado no desenho abaixo:

Page 48: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 7

Operações e Atributos de uma Classe

Uma classe é definida nos seus aspectos estruturais através de seus atributos e nos seus aspectos comportamentais através de suas operações.

Uma classe não tem necessariamente que corresponder a uma entidade humana ou, mais genericamente, a uma entidade com representação física (por exemplo, uma fatura).

Pode-se representar entidades mais abstratas (por exemplo, venda).

Page 49: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 8

Atributos de uma Classe

Atributo da classeSão propriedades semelhantes que os objetos de uma classe possuem. O "João da Silva" além do nome, também é caracterizado por outros atributos, como endereço, número do contribuinte, cpf, rg, etc.

Cada atributo permite definir um intervalo de valores que as instâncias dessa propriedade podem apresentar.

Meu carro é branco, o seu é preto. Essas propriedades de carro são descritas pelo atributo cor.

Page 50: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 9

Atributos de uma Classe

Tanto nos atributos quanto nas operações de uma classe podem ser especificados detalhes de sua visibilidade e de sua multiplicidade.

A sintaxe básica de um atributo é:[visibilidade] nome-do-atributo : [tipo] { =valor-inicial }

Exemplos:+ nome : String

- salario : double = 1000.00

# nota : int

Page 51: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 10

Operações de uma Classe

Operações da ClasseO João da Silva possui uma identidade própria, isto é, para a empresa, ele é distinto de todos os outros clientes.

Essa identidade não é só descrita pelos atributos. Todos os objetos de uma classe podem fazer alguma coisa (um serviço) ou pode-se fazer com ele alguma coisa.

As operações são responsáveis pela efetivação dos serviços prestados pelas classes.

Sobre o cliente "João da Silva" pode-se efetuar várias operações como emitir-lhe faturas, alterar seu endereço, apagá-lo da base de dados, entre outras.

Page 52: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 11

Operações de uma Classe

A sintaxe básica de uma operação é:[visibilidade] nome-da-operação ( [lista-de-parâmetros] ) : [tipo-retorno]

Exemplos:- mostrar() : void

+ calcularTaxa( valorDolar : double ) : double

# somar (a : int , b: int) : int

Page 53: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 12

Operações e Atributos Estáticos

Uma operação ou um atributo que não pertence a uma instância da classe, mas a classe como um todo é chamado de operação e atributo estático, respectivamente.

Operações e atributos estáticos são compartilhados por todas as instâncias da classe, mas não pertence a nenhuma instância.

Page 54: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 13

Visibilidade

Os atributos e operações de uma classe podem ser especificados para mostrar como a mesma pode ser vista e utilizada pelos outros elementos do sistema.

Os níveis de visibilidade para o atributo ou a operação:(+) PÚBLICO:

Todas as classes visualizam.(-) PRIVADO:

Somente a própria classe visualiza.(#) PROTEGIDO:

Todas as classes do mesmo pacote e sub-classes visualizam.(~) PACOTE:

Todas as classes do mesmo pacote visualizam.

Page 55: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 14

Visibilidade

Exemplo:

Somente a própria classe tem acesso direto aos atributos do veículo.Qualquer classe pode ligar ou desligar o veículo.Somente classes do mesmo pacote ou sub-classes podem acelerar ou frear o veículo.Somente a própria classe pode ativar o ABS.Somente classes do mesmo pacote podem ver o consumo do veículo.

Page 56: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 15

Associação

Outra maneira de se criar um atributo é através de uma associação.

Associação é uma linha cheia entre duas classes, direcionadas da classe de origem para a classe de destino. A direção pode ser nos dois sentidos, o que gera uma Associação Bidirecional.

Exemplo:

Este exemplo indica que um objeto NotaFiscal possui pelo menos um objeto ItemNotaFiscal.

Page 57: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 16

Associação

Ainda no exemplo:

Como pode ser visto não deve-se colocar uma associação como atributo, pois a própria associação já nos diz isto.

O código Java ficaria assim:

public class NotaFiscal { public class ItemNotaFiscal {private List listaItemNotaFiscal; private NotaFiscal notaFiscal;... ...

} }

Page 58: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 17

Classes Associativas

Algumas associações de muitos para muitos exige a necessidade da criação de uma classe associativa entre as duas classes associadas.No exemplo abaixo existe a classe Paciente com seus atributos e a classe Exame com seus atributos. Do relacionamento entre Paciente e Exame têm-se a data da realização e o diagnóstico. Observe:

Page 59: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 18

Multiplicidade

A multiplicidade de uma classe é o número de instâncias possíveis que uma classe pode ter considerando uma única instância da outra classe a qual ela é associada. Ou seja, é o número de objetos de uma classe que pode relacionar com um único objeto de uma outra classe.

Multiplicidades são números simples ou intervalos de números. A tabela abaixo exemplifica os tipos comuns de multiplicidades.

Pelo menos uma instância.1..*Zero ou mais instâncias.0..*Exatamente uma instância.1Uma instância opcional.0..1

Page 60: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 19

Multiplicidade

No exemplo abaixo, um pedido pode estar vinculado a um únicocliente, porém um cliente poderá possuir qualquer quantidade de pedidos.

E estes?

Page 61: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 20

Dependência

Uma dependência entre dois elementos existe se mudanças na definição de um elemento podem causar mudanças ao outro.A simbologia adotada é uma linha tracejada ligando um elemento ao outro elemento o qual ele depende.

No exemplo acima, a classe de formulário do funcionário depende da classe de funcionário.

Page 62: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 21

Agregação – Tipo de associação

As agregações são um caso especial das associações.

Uma agregação modela um relacionamento tem um (ou parte de, no jargão da UML) entre pares. Este relacionamento significa queum objeto contém outro.

No contexto de uma agregação, os objetos podem existir independentemente uns dos outros. Nenhum objeto é mais importante do que o outro no relacionamento.

Um losango aberto simboliza a agregação. O losango toca o objeto que é considerado o todo do relacionamento. O todo é constituído de partes.

Page 63: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 22

Agregação – Tipo de associação

Como o Banco e Cliente são independentes, eles são pares. Você pode dizer que o objeto Banco e o objeto Cliente são pares, porque os objetos Cliente podem existir independentemente do objeto Banco.

Isso significa que se o objeto Banco encerrar suas operações, os clientes não desaparecerão com o banco. Em vez disso, os clientes podem se tornar clientes de outro banco. Do mesmo modo o clientepode sacar seus fundos e o banco continuará.

Page 64: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 23

Composição – Tipo de associação

As composições são um caso especial das associações de agregação.

Elas representam a noção de composição e apenas têm sentido em associações “um para muitos” e, mais raramente, em associações “muitos para muitos”.

Enquanto que nas associações anteriormente referidas não existem classes mais importantes, nas agregações existe uma classe (supra classe) que representa a agregação dos objetos da outra classe (sub classe).

Page 65: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 24

Composição – Tipo de associação

A título de exemplo, considere-se os itens (linhas) de uma fatura. Usualmente uma fatura é (ou pode ser) composta por vários itens, cada um deles diz respeito a um produto faturado. Os itens têm seus próprios atributos (quantidade, preço unitário, descrição do produto, etc.) e entidade própria (é possível distinguir um item de outro na mesma fatura).

Uma possível representação deste domínio é o diagrama do próximo slide. Uma fatura possui vários itens, mas um item apenas diz respeito a uma fatura. Uma composição tem um losango fechado apontando para a parte contendo o todo.

Page 66: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 25

Composição – Tipo de associação

É importante observar que os itens existem apenas enquanto existir a fatura da qual fazem parte.

Dito de outra forma, uma fatura é uma composição de itens. Se removermos uma fatura, os itens dessa fatura também serão removidos.

Neste caso temos um tipo de agregação conhecido como Composição.

Uma composição representa uma relação mais forte entre o objeto agregador e os objetos componentes.

Page 67: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 26

Generalização

Trata-se da ação de uma classe herdar toda a estrutura de uma outra classe.

Uma sub-classe sempre herda de sua super-classe:AtributosOperaçõesRelacionamentos

Uma sub-classe pode:Adicionar atributos e operaçõesAdicionar relacionamentosSobrepôr (override) operações herdadas

Uma sub-classe sempre herda tudo de sua super-classe, isto é, não tem como herdar somente alguns atributos ou operações.

Page 68: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 27

Generalização

Exemplo:

ContaCorrente é um tipo de Conta.ContaPoupanca é um tipo de Conta.

Page 69: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 28

Interfaces

Uma interface é uma coleção de operações que são usadas para especificar um serviço de uma classe. Graficamente, uma interface é representada como um círculo (forma icônica). Toda interface deve ter um nome que a distingue de outras interfaces.

Forma Icônica:

Page 70: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 29

Interfaces

Uma interface pode também ser representada como um estereótipo (forma expandida).

Forma Expandida:

Neste caso, é possível visualizar as operações permitidas na interface.

Page 71: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 30

Interfaces

Uma interface especifica um contrato de serviço para uma classe, sem detalhar como será sua implementação.

No exemplo a seguir, IPreco especifica esse contrato e a classe Pedido é responsável pela sua realização.

Podemos definir uma interface a qual nomearemos de IPreco (a letra 'I' foi usada para permitir identificação como sendo uma interface).

Page 72: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 31

Interfaces

A interface IPreco provê um contrato de definição de preço para a classe Pedido.

A classe Pedido, a qual realiza, isto é, provê a implementação concreta da interface IPreco, contém um relacionamento chamado realização. Neste caso, note que a classe Cliente depende da interface IPreco.

Page 73: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 32

Realização

Uma realização indica que uma classe implementa o comportamento especificado por uma interface.

Uma interface pode ser realizada por várias classes.Uma classe pode realizar diversas interfaces.

Page 74: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 33

Em alguns momentos deseja criar uma classe sem a implementação de algumas operações ou, simplesmente, não deseja que exista uma instância de determinada classe.Para dizer que uma classe é abstrata, basta inserir seu nome em itálico.

No exemplo ao lado, não teria como dizer que tem uma instância de Conta, mas sim, somente uma instância de uma de suas sub-classes:

- ContaCorrente- ContaPoupanca

Classes Abstratas

Page 75: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 34

Regras de Restrições

Restrições agregam condições entre associações, atributos, operações e classes.

Restrições são restrições semânticas anotadas como expressõesbooleanas.

UML oferece várias restrições pré-definidas.

Page 76: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 35

Pacotes

Um pacote é um mecanismo de agrupamento.

Pode ser utilizado para agrupar qualquer elemento UML (comocasos de uso, atores, classes, componentes e outros pacotes).

Geralmente utizada para especificar uma distribuição lógica.

Page 77: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 36

Pacotes

Os pacotes em um diagrama de classes são altamente utilizados, pois, na implementação do sistema, a organização das classes são sempre feitas utilizando pacotes.

Page 78: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 37

Notas e Comentários

Assim como todo diagrama UML pode ser inseridos notas ou comentários.

Page 79: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 38

Cuidado

Diagrama de Classes não é um modelo ER.

O maior perigo com os diagramas de classes é que você pode focalizar exclusivamente na estrutura e ignorar o comportamento.

Page 80: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 39

Referência Bibliográfica

FOWLER, Martin. UML Essencial. 3 ed. Porto Alegre: Bookman, 2005.

PENDER, Tom. UML, a Bíblia. 2 reimp. Rio de Janeiro: Campus, 2004.

Page 81: UML - Apostila

UML – Diagrama de

Interação

Prof. Ricardo Terra

Page 82: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 2

Diagramas de Interação

  Os diagramas de interação mostram como os objetos interagem uns com os outros. Permitem assim modelar os aspectos dinâmicos de um sistema. Existem dois tipos de diagramas de interação:   Diagrama de Seqüência   Diagrama de Colaboração

  O diagrama de colaboração pode ser usado para mostrar como os objetos em um sistema interagem sobre múltiplos casos de uso .

  Por outro lado, um diagrama de seqüência é tipicamente usado para mostrar a interação de objetos em um único caso de uso.

Page 83: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 3

Objeto da Classe

  Objeto de Classe é uma instância de uma classe, isto é, uma manifestação concreta de algo abstrato.

  No exemplo acima, existe a definição da classe Carro e dois objetos desta classe.

Page 84: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 4

Mensagens

  Uma mensagem é a remessa de um sinal ou a chamada de uma operação de um objeto (o emissor) para um ou mais objetos (receptor).

  A mensagem é o elemento principal do diagrama de interação.

  Uma mensagem é representada graficamente como uma seta (do emissor ao receptor), acima do qual pode-se colocar um nome (geralmente o nome da operação) e um número de sequência.

  No exemplo acima, o objeto emissor (:Motorista) invoca o método ligar do objeto receptor (:Carro).

Page 85: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 5

Mensagens

  Existem diversos tipos de mensagens, tais como mensagem síncronas (mais usadas), assícronas, de retorno, auto-referência e temporizada, observe a diferença entre elas.

Seta Tipo Descrição Síncrona Envio de mensagens síncronas.

Assíncrona É uma mensagem que não bloqueia o emissor. Isto é, o emissor e o receptor executam concorrentemente.

Retorno Indica o retorno do controle após uma nova mensagem ter sido enviada

Auto-referência

Usada quando um objeto necessita enviar uma mensagem para ele mesmo.

Temporizada Indica que a mensagem enviada possui tempo de vida.

Page 86: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 6

Diagrama de Seqüência

  O diagrama de seqüência, como um dos dois tipos de diagrama de interação, mostra a interação existente num conjunto de objetos e seus relacionamentos, dando ênfase à ordenação temporal de mensagens.

  Nesse diagrama, colocam-se os objetos de classes que participam de interação no topo (eixo X), o objeto que inicia a interação é colocado mais à esquerda e os demais vão sendo colocados à direita. As mensagens trocadas são dispostas ao longo do eixo dos Y, de acordo com os vínculos entre os objetos da classe, e em ordem crescente do tempo.

  Os diagramas de sequência diferenciam dos diagramas de colaboração por apresentar linhas de vida e barras de ativação.

Page 87: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 7

Linhas de Vida

  Linhas de vida são linhas verticais tracejadas que indicam a existência do objeto no tempo.   Recomenda-se que todos os objetos a serem utilizados sejam inseridos já

no início do diagrama com sua respectiva linha de vida, observe:

Page 88: UML - Apostila

  Barras de ativação representam o tempo que um objeto necessita para completar uma tarefa. As barras mostram o tempo em que objeto está ativo.   As barras de ativação são representadas graficamente por um retângulo alto

e estreito, colocado no eixo Y, sobre as linhas de vida dos objetos.

  Observe exemplo no próximo slide.

Tópicos Especiais em Informática II - Prof. R. Terra 8

Barras de Ativação

Page 89: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 9

Diagrama de Sequência

Page 90: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 10

Diagrama de Colaboração

  O diagrama de colaboração, como um dos dois tipos de diagrama de interação, mostra a interação existente num conjunto de objetos e seus relacionamentos, dando ênfase à organização estrutural dos objetos.

  O diagrama mostra os objetos das classes que participam da interação, mostrando os vínculos entre os mesmos, descrevendo as mensagens que os objetos recebem e enviam.

  Os diagramas de colaboração diferenciam-se dos diagramas de seqüências nestes aspectos:   Existe um caminho que indica como o objeto está vinculado a outro.   Existe um número de seqüência para indicar a ordem temporal de uma

mensagem.   No diagrama de seqüência é altamente recomendado, mas é opcional.

Page 91: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 11

Diagrama de Colaboração

Page 92: UML - Apostila

Tópicos Especiais em Informática II - Prof. R. Terra 12

Referência Bibliográfica

  FOWLER, Martin. UML Essencial. 3 ed. Porto Alegre: Bookman, 2005.

  PENDER, Tom. UML, a Bíblia. 2 reimp. Rio de Janeiro: Campus, 2004.