Apostila Muito Boa de UML - Professor UFRGS

28
  Usando UML para Especificação de Sistemas Orientados a Objetos Prof. Rodrigo Quites Reis Fevereiro, 2003 [email protected] http://www.inf.ufrgs.br/~quites

Transcript of Apostila Muito Boa de UML - Professor UFRGS

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 1/28

 

 

Usando UML para Especificação de SistemasOrientados a Objetos 

Prof. Rodrigo Quites Reis

Fevereiro, 2003

[email protected]

http://www.inf.ufrgs.br/~quites

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 2/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

Modelagem de Objetos com UML

Autoria: Rodrigo Quites Reis

Última atualização: fevereiro/2000

 Nenhuma parte desta apostila pode ser utilizada ou reproduzida, em qualquer meio ou forma,  seja mecânico ou eletrônico, fotocópia, gravação, ou outros, sem autorização, prévia,expressa e específica do Autor.

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 3/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

SUMÁRIO

1  INTRODUÇÃO .................................................................................................................4 

2  DIAGRAMAS DE CASOS DE USO (USE CASES ) ......................................................5 2.1 Caso de Uso ..................................................................................................................52.2 Interação em caso de uso ..............................................................................................62.3 Exemplos de casos de uso.............................................................................................8

2.3.1  Caixa eletrônico ............................................................................................... .............................. 8 2.3.2  Telefone celular................................................................................................................... ........... 8 2.3.3  Sistema de Vendas [TOG00]... .................................................................................. .................... 9 

3  DIAGRAMA DE CLASSES EM UML.........................................................................10 

3.1 Classes e seus relacionamentos...................................................................................103.2 Associações Simples ...................................................................................................113.3 Multiplicidade (Cardinalidade) ...................................................................................133.4 Classes Associativas ...................................................................................................143.5 Qualificador ................................................................................................................153.6 Agregação ...................................................................................................................163.7 Navegabilidade ...........................................................................................................183.8 Generalização/Especialização .....................................................................................183.9 Restrições....................................................................................................................193.10 Estudo de Caso..........................................................................................................20

4  DIAGRAMAS DE INTERAÇÃO..................................................................................21 4.1 Diagrama de Seqüência...............................................................................................224.2 Diagrama de Colaboração...........................................................................................24

5  ESTUDOS DE CASO E EXERCÍCIOS........................................................................27 5.1 Estudo de Caso 1: Locadora de Veículos....................................................................275.2 Estudo de Caso 2: Hospital .........................................................................................27

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 4/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

1 INTRODUÇÃO

O presente texto tem como objetivo apresentar uma visão geral das técnicas demodelagem de sistemas orientados a objetos chamada UML –  Unified Modelling Language.Atualmente, UML consiste na principal linguagem para descrição de sistemas O.O., tendosido definida como padrão do OMG1 em 1997.

Apesar deste não se propor a substituir qualquer um dos livros clássicos escritosnesta área, o objetivo deste texto é o de complementar as atividades realizadas em sala deaula, proporcionado uma visão geral dos conceitos de modelagem com UML. Além disso,somente os modelos UML mais importantes são apresentados, deixando de lado aqueles que

 possuem sua aplicação condicionada a sistemas com características específicas.

1 OMG = Object Management Group. Organismo internacional para definição de padrões da orientação aobjetos.

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 5/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

2 DIAGRAMAS DE CASOS DE USO (USE CASES )

Os diagramas de caso de uso fornecem um modo de descrever a visão externa dosistema e suas interações com o mundo exterior, representando uma visão de alto nível defuncionalidade intencional mediante o recebimento de um tipo de requisição de usuário.

A modelagem de caso de uso é uma técnica utilizada para descrever a funcionalidadede um sistema através de atores externos interagindo em casos de uso. Atores representam um

 papel e iniciam o caso de uso que, por sua vez, deve entregar um valor tangível de retorno aoator. Atores e casos de uso estão conectados através de associações e podem ter relacionamentos de generalização que descreva o comportamento comum em superclassesherdadas por uma ou mais subclasses especializadas.

A modelagem de casos de uso é utilizada para capturar necessidades de um novosistema ou acrescentar novas necessidades para criar uma nova versão. Neste sentido, a novafuncionalidade é adicionada ao contexto do modelo de caso de uso através da inserção denovos atores e casos.

Os objetivos principais de um diagrama de caso de uso são:

•  Descrever os requisitos funcionais do sistema de maneira uniforme para usuáriose desenvolvedores;

•  Descrever de forma clara e consistente as responsabilidades a serem cumpridas pelo sistema, formando a base para a fase de projeto;

•  Oferecer as possíveis situações do mundo real para a fase de testes do sistema.Um diagrama de caso de uso é um gráfico de atores, um conjunto de casos incluído

 por um limite de domínio, comunicação, participação e associações entre atores, assim comogeneralizações entre casos de uso. Os elementos básicos de um diagrama de caso de uso são:ator, caso de uso, interação e sistema, todos ilustrados na figura a seguir.

Ator Ator 

Sistema

Caso de uso 1

 

Figura 1. Componentes de um diagrama de caso de uso.

2.1 Caso de Uso

Cada caso de uso é uma seqüência completa de cenários de interação mostrando

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 6/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

como eventos externos iniciais são respondidos no caso. Um cenário é uma narrativa de uma parte do comportamento global do sistema e uma coleção completa de cenários é usada paraespecificar completamente um sistema. Um caso de uso está para um cenário assim como uma

classe está para um objeto. Ou seja, um caso de uso representa uma declaração de um aspectode comportamento que é caracterizado por um lote de cenários concretos.

Um ator é uma entidade externa ao sistema que de alguma forma participa de umcaso de uso. Um ator estimula o sistema com eventos externos e tipicamente recebe algo dosistema. Um ator pode ser um ser humano, máquinas, dispositivos, ou outros sistemas. Atorestípicos incluem, por exemplo, clientes, usuários, gerentes, computadores e impressoras.

2.2 Interação em caso de uso

O ator comunica-se com o sistema através do envio e recebimento de mensagens,

sendo que um caso de uso é sempre iniciado a partir do momento em que o ator envia suamensagem (estímulo). As seguintes interações são importantes dentro de um diagrama de casode uso:

•  Comunicação: Um ator comunica-se com o caso de uso, tal como no exemploda Figura 2;

Telefone Celular 

 

Telefone Celular 

Usuário

Fazer ligação

 A comunicação é representada através

de um arco simples  

Figura 2. Exemplo de Comunicação

•  Inclusão: Quando um número de casos de uso tem comportamento comum, essecomportamento pode ser modelado em um simples caso de uso que é utilizado

  por outros casos. Assim, quando um caso de uso faz uso de outro, orelacionamento de inclusão se aplica. É desenhado como uma seta pontilhada docaso de uso que faz o uso ao caso de uso que é usado (da parte para o todo),etiquetada com <<includes>>. A Figura 3 apresenta um exemplo dorelacionamento de inclusão.

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 7/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

Telefone Celular 

 

Telefone Celular 

Usuário

Fazer ligação

 A comunicação é representada atravésde um arco pontilhado com o rótulo <<includes>>

Identifica

destinatário

<<includes>>

 

Figura 3 Exemplo de Inclusão

•  Extensão. É usada para descrever casos de uso que são ativados opcionalmenteem um sistema. O relacionamento de extensão é representado graficamenteatravés de uma seta pontilhada com o rótulo <<extends>> que tem origem nocaso de uso opcional e atinge o caso de uso obrigatório associado. A Figura 4

mostra um exemplo do uso de Extensão na modelagem de casos de uso.Telefone Celular 

 

Telefone Celular 

Receber 

ligação Receber 

ligaçãoadicional

<<extends>>

Usuário Opcional 

Figura 4 Exemplo de Extensão

  Generalização. Expressa um relacionamento do tipo herança entre casos de uso.Assim, um super-tipo de caso de uso indica um caso geral, enquanto que suasespecializações indicam casos particulares. A Figura 5 apresenta um exemplo dorelacionamento de generalização, onde Efetua pagamento é um super-tipo o qualé especializado em Pagto com Cartão de Crédito e Pagto com Débito em Conta.

Usuário

Efetuapagamento

Pagto com

Cartão de crédito

Pagto com

Débito em Conta

Super tipo

Sub tipos

 

Figura 5 Exemplo de Generalização

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 8/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

2.3 Exemplos de casos de uso

2.3.1 Caixa eletrônico

O exemplo da Figura 6 mostra um diagrama de caso de uso que ilustra os serviçostipicamente fornecidos por um Caixa eletrônico bancário. O diagrama distingueexplicitamente dois grupos de serviços: aqueles casos de uso para o Cliente, enquanto que“Abastecer dinheiro” e “Recolher envelopes de depósitos” são de uso exclusivo do ator Funcionário.

Caixa eletrônico

Consultade saldo

Solicitação

de extrato

SaqueCliente Funcionário

Abastecer dinheiro

Recolher envelopes dedepósitos

 

Figura 6 Exemplo de diagrama de caso de uso (extraído de [FUR98])

2.3.2 Telefone celular 

A Figura 7 apresenta um diagrama de caso de uso para um telefone celular. Deve-seobservar que o serviço “Faz ligação” faz uso de “Identifica destinatário” e opcionalmenteutiliza “Fazer ligação em conferência”. O caso de uso “Receber ligação”, por sua vez,opcionalmente utiliza o “Receber ligação adicional”.

Telefone Celular 

 

Telefone Celular 

Usuário

RedeCelular 

Fazer ligação

Receber ligação

Uso

programado

Fazer ligação emconferência

Receber 

ligaçãoadicional

<<extends>>

<<extends>>

Identificadestinatário

<<includes>>

 

Figura 7 Exemplo de caso para telefone celular (adaptado de [BOO00])

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 9/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

2.3.3 Sistema de Vendas [TOG00]

A Figura 8 mostra um diagrama de caso de uso fornecido como exemplo na

ferramenta Together Control Center. São fornecidos dois sistemas inter-relacionados (“ Point of Sale” e “  Product System”) com casos de uso particulares. O ator  Cashier  representa ousuário do sistema que assume o papel de Caixa (atendente), enquanto que Inventory System éum sistema externo.

Figura 8. Caso de uso de Sistema de vendas.

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 10/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

3 DIAGRAMA DE CLASSES EM UML

O modelo de objetos em UML é representado através de um diagrama de classes.Um diagrama de classes denota a estrutura estática de um sistema e as classes representamcoisas que são manipuladas por esse sistema. A notação utilizada para representar o diagramade classes em UML é fortemente baseada na notação de Diagramas Entidade-Relacionamento[CHE90] e no Modelo de Objetos de OMT [RUM94]. As seções a seguir apresentamresumidamente a notação utilizada nesta linguagem.

3.1 Classes e seus relacionamentos

Uma classe é representada por um retângulo sólido com três partes: uma para o nomeda classe; outra para os atributos da classe; e a terceira para a declaração das operaçõesdefinidas para a classe. A Figura 9 mostra a notação UML para classes.

Figura 9. Notação para classe em UML

Os tipos principais de relacionamentos entre classes são:

•  Generalização/Especialização (Herança): Indica relacionamento entre um

elemento mais geral e um elemento mais específico (superclasse e subclasse,respectivamente). A subclasse pode conter somente informação adicional acercada superclasse. Por exemplo um médico é um funcionário;

•  Agregação: Usada para denotar relacionamentos todo/parte. Por exemplo, umitem de compra é parte de um pedido;

•  Associação (simples): Usada para representar relacionamentos entre as classes(por exemplo, um cliente pode alugar várias fitas de vídeo);

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 11/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

•  Dependência: Um relacionamento entre um elemento independente e outrodependente, onde uma mudança no elemento independente afetará o elementodependente.

3.2 Associações Simples

Uma associação descreve um conjunto de vínculos entre objetos das classesrelacionadas. A associação entre duas ou mais classes permite um conjunto de ligações entreos objetos das classes. Os tipos de associação são:

Associação Unária: Relacionamento entre uma classe e ela mesma. Também conhecidacomo associação recursiva, cujo relacionamento pode conectar dois diferentes objetos de umamesma classe. A Figura 10 mostra um exemplo de associação unária:

Figura 10. Exemplo de associação unária.

Associação Binária: Expressa o relacionamento entre duas classes distintas. A Figura 11

ilustra o exemplo de associação binária.

Livro

Título: Str 

ISBN: IntEditora: Str 

Livro

Título: Str 

ISBN: IntEditora: Str 

Pessoa

Nome: Str 

Endereço: {Logradouro: Str,

Bairro: Str,

Cidade: Str. }

Telefones: Array of Int

Pessoa

Nome: Str 

Endereço: {Logradouro: Str,

Bairro: Str,

Cidade: Str. }

Telefones: Array of Int

autoria

0..* 1..*

Multiplicidade da associaçãoMultiplicidade da associação

Rótulo da associaçãoRótulo da associação  

Figura 11 Exemplo de associação binária

Em geral, toda associação deve ser rotulada, tal como na associação de ‘autoria’ naFigura 11. Alternativamente, pode ser expresso o papel de uma classe na associação, tal como

Funcionário 1

* supervisiona

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 12/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

titular na Figura 12.

Conta Bancária

número

saldo

dataAbertura

criar()

bloquear()

desbloquear()

creditar()debitar()

PessoaNome: Str 

Endereço: {Logradouro: Str,

Bairro: Str,

Cidade: Str. }

Telefones: Array of Int

PessoaNome: Str 

Endereço: {Logradouro: Str,

Bairro: Str,

Cidade: Str. }

Telefones: Array of Int

1*

titular 

Papel da classe na associação  

Figura 12 Segundo exemplo de associação binária

As associações têm sua semântica definida como relações entre conjuntos. Oexemplo da Figura 13 ilustra como que as classes Funcionário e Departamento representamconjuntos, enquanto que a associação ‘trabalha’ define uma relação bidirecional entre osconjuntos, indicando que o Funcionário João ‘trabalha’ no Departamento Financeiro e viceversa.

Departamento

Financeiro

Funcionário Departamento0..* trabalha4 1

Funcionário

João

Funcionário

 

João

 

Figura 13 Mapeamento da semântica estrutural de uma associação

Associação n-ária: Associação entre três ou mais classes. Neste caso a notação inclui umlosango para representar a associação, como mostra a figura a seguir:

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 13/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

Figura 14. Representação de associação ternária.

3.3 Multiplicidade (Cardinalidade)

A cardinalidade das associações em um diagrama de classes é denominada demultiplicidade e especifica quantas instâncias de uma classe podem participar da associação(semelhante à abordagem ER). A tabela 1 a seguir apresenta as multiplicidades.

Tabela 1 – Multiplicidades de associações entre classes.

Multiplicidade Significado

0..1 Zero ou um1 Somente 1

0..* Maior ou igual a zero

* Maior ou igual a zero

1..* Maior ou igual a 1

1..15 (m..n) De 1 a 15 (m a n), inclusive

A Figura 15 mostra um exemplo de uso de multiplicidade onde a classe  financeira 

está associada a 0 ou mais instâncias classe venda através da associação  financia. A classevenda está associada a um objeto da classe vendedor através da associação venda (notar que onome da associação pode ser um substantivo).

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 14/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

Financeira

códigonome

Financeira

códigonome

 Venda

datahora

 Venda

datahora

 Vendedor

númeronenhanívelAutorização

 Vendedor

númeronenhanívelAutorização

 

financia

0..1 * *

realizada por

 

Figura 15. Financeira: exemplo de uso de multiplicidade (adaptado de [HEU 99]) 

3.4 Classes Associativas

São classes que representam a associação entre outras classes. Somente ocorreminstâncias da classe associativa quando ocorre a associação entre classes. Comparando com aabordagem Entidades-Relacionamentos (ER), uma classe associativa equivale a uma entidadeassociativa ou agregação de entidades. Da mesma forma, quando em um diagrama ER existe anecessidade de representar atributos de relacionamentos, em um diagrama de classes cria-seuma classe associativa.

A Figura 16 mostra um exemplo de classe associativa onde quando ocorre umcasamento entre duas pessoas, então uma classe associativa armazena a data do casamento e oregime.

Pessoa

NomeEndereço: {Logradouro;

Bairro;

Cidade. }

Sexo

Pessoa

NomeEndereço: {Logradouro;

Bairro;

Cidade. }

Sexo

marido

esposa

0..1

0..1

casamentoData

Regime

Data

Regime

Data

Regime

 

Figura 16. Exemplo de classe associativa em uma associação unária.

A Figura 17 mostra um exemplo de associação onde é representado que quandoocorre a matrícula de um Aluno em uma Disciplina. A classe associativa armazena asinformações de matrícula, isto é, o conceito e semestre correspondentes.

  Aluno Disciplina** matriculado

conceitosemestre  

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 15/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

Figura 17. Exemplo de classe associativa com associação binária. 

A Figura 18 ilustra um exemplo de classe associativa entre Financeira e Venda,

complementando o diagrama apresentado anteriormente na Figura 15Financeira

códigonome

Financeira

códigonome

 Venda

datahora

 Venda

datahora

 Vendedor

númeronenhanívelAutorização

 Vendedor

númeronenhanívelAutorização

financia

0..1 * *

realizada por

registroAprovaçãodataAprovação

Financiamento

 

Figura 18 Evolução do modelo de Financeira com classe associativa

Uma classe associativa pode ser transformada em uma classe regular conformemostra a Figura 19 a seguir. A parte superior da figura mostra o modelo duas classes regularese uma associativa, enquanto que a parte inferior apresenta um modelo análogo que écomposto por três classes regulares.

Funcionário Departamento1 trabalha4 0..1

salário

dataContratação

Funcionário Departamento0..1

EmpregosaláriodataContratação

**

 

Figura 19. Transformação de uma classe associativa em classe regular.

3.5 Qualificador 

Qualificadores ou Associações Qualificadas são usadas com associações 1:N ou N:N.O qualificador distingue (divide) o conjunto de objetos do outro lado da associação. A figuraa seguir ilustra um exemplo de qualificador. O modelo informa que um prédio possui váriosnúmeros de andar. Um número de andar de um prédio está associado a exatamente um andar.Como conseqüência um andar é identificado pelo seu número e pelo prédio. Este conceito éanálogo ao conceito de entidade fraca ou relacionamento identificador em modelos entidade-relacionamento.

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 16/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

Figura 20. Exemplo de uso de qualificador.

Outro exemplo de qualificador é apresentado na figura a seguir, onde um diretórioestá associado a vários nomes de arquivo, e cada nome de arquivo é associado a um arquivo.Cada arquivo está associado a um nome de arquivo e a um diretório.

Figura 21. Exemplo de qualificador.

3.6 Agregação

É um caso especial de associação usado para representar a relação todo/parte entreclasses. Quando o todo é criado, as partes também o são (e quando é eliminado também). As

 partes não têm existência própria, somente associadas ao todo.

A notação de agregação é apresentada nas figuras a seguir:

Figura 22. Agregação regular ou relacionamento por referência.

Figura 23. Agregação de composição ou relacionamento por valor.

Diretório  Nome do arquivo Arquivo

Todo Parte

Agregação Regular 

Todo Parte

Agregação de composição

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 17/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

A rigor, a agregação deve ser utilizada prioritariamente para explicitar relações detodo-parte: portanto, a Figura 24 mostra dois diagramas de classe que possuem exatamente omesmo significado.

Documento Parágrafo Sentença0..* 0..*

Documento Parágrafo Sentença0..* 0..*

composto-por  composto-por 

 

Figura 24 Documento, parágrafo e sentença: duas alternativas para modelagem de agregação

Um segundo exemplo de uso de agregação em que uma Associação Esportiva écomposta por várias Equipes afiliadas que, por sua vez, são compostas por objetos da classeJogador.

Associação

EsportivaEquipe Jogador  

0..* 0..*<- afiliada

 

Figura 25. Exemplo de agregação.

Outro exemplo de agregação com notação compacta é apresentado na Figura 26,mostrando que ao invés de ligar várias linhas a um agregado, basta usar o símbolo de

agregação uma única vez.

Figura 26. Agregação de várias classes com notação compacta [HEU 99].

Por fim, é apresentado um exemplo de composição na Figura 27. No caso, a classeCPF é especialmente útil para ser descrito separadamente por fornecer o método validaCPF .

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 18/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

Pessoa

nomeendereço: {

logradouro;bairro;cidade. }

cpf sexo

 

Pessoa

nomeendereço: {

logradouro;bairro;cidade. }

cpf sexo

Pessoanomesexo

 

Pessoanomesexo

logradourobairrocidade

Endereço

 

logradourobairrocidade

Endereço

composição

número

CPF

validaCPF: bool 

Figura 27 Uso de composição para descrever os detalhes de Pessoa

3.7 Navegabilidade

Uma instância de uma classe pode navegar a instâncias de outra classe e vice-versa.  Navegabilidade é percebida freqüentemente por objetos que mantêm referências de algumtipo entre objetos associados. Uma seta é ligada entre duas classes para indicar o caminho denavegação entre elas. Em termos de implementação isso representaria que o objeto de umaclasse conteria um apontador para o objeto da outra classe.

A figura a seguir mostra um exemplo onde as classes Pedido e Cliente possuem umaassociação onde o sentido da navegação ocorre de Pedido para Cliente. Isto indica que um

  pedido tem a responsabilidade de informar a qual cliente pertence, mas um cliente em

 particular não precisa indicar quais pedidos possui.

Figura 28. Exemplo de Navegabilidade

3.8 Generalização/Especialização

Generalização/Especialização é um conceito também conhecido pelo nome deHerança. Trata-se de um relacionamento de classificação entre um elemento mais geral eoutro mais específico. O elemento mais específico é completamente consistente com o maisgeral somando-se informação adicional especializada.

Pedido Cliente*

navegabilidade

  fonte al

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 19/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

As subclasses herdam atributos, operações e associações da superclasse e agregamatributos e operações particulares ao elemento de especialização a que se referem.

A Figura 29 mostra um exemplo do uso de herança onde Pessoa física e Pessoa  jurídica são especializações de Cliente. As sub-classes herdam todas as propriedades(atributos, métodos, relacionamentos, generalizações) da classe genérica e, desta forma, emvirtude do polimorfismo de dados não é necessário repetir a associação entre Cliente eCompra para todas as especializações de Cliente.

Cliente

nome

PessoaFísica

CPFRGSexoDataNascimento

PessoaJurídica

CGCRazãoSocial

Compra** realiza

 

Figura 29. Exemplo de generalização/especialização.

3.9 Restrições

Uma restrição é um relacionamento semântico entre elementos de modelo queespecifica condições e proposições que devem ser mantidas como verdadeiras.

Certos tipos de restrições são predefinidas em UML, mas há a possibilidade dedefinição de restrições por parte do usuário. Por exemplo, a Figura 30 mostra uma associaçãoonde a restrição é definida para limitar a possibilidade de associação entre Pessoa e Cidadãosidosos.

Figura 30. Exemplo de uso de restrição.

Um exemplo de restrição bastante utilizada é a restrição {ou}. Ela indica que em umaassociação, uma instância da classe só pode participar uma vez no máximo de uma dasassociações possíveis (cortadas pela linha tracejada). A figura a seguir ilustra um exemplo

CidadãosIdosos Pessoa

0 1 0 *

{pessoa.idade>60}

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 20/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

onde uma conta corrente pertence a um indivíduo ou a uma organização.

Conta

corrente

Indivíduo

Organização

0..*

0..*

0..1

0..1

{ou}

 

Figura 31. Uso de restrição {ou} 

3.10 Estudo de Caso

A figura a seguir mostra um exemplo inicial do modelo de classes para umauniversidade. Sugere-se como exercício a complementação do modelo.

Figura 32. Estudo de caso de Controle Acadêmico de Universidade 

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 21/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

4 DIAGRAMAS DE INTERAÇÃO

Diagrama de Interação é um termo genérico que se aplica a vários tipos de diagramasque enfatizam interações de objetos. Uma interação é uma especificação comportamental queinclui uma seqüência de trocas de mensagens entre um conjunto de objetos dentro de umcontexto para realizar um propósito específico, tal como a realização de um caso de uso. Asmensagens podem incluir sinais e chamadas implícitas decorrentes de condições e eventos detempo.

Para especificar uma interação, é necessário definir um contexto de caso de uso e

estabelecer os objetos que interagem e seus relacionamentos. Portanto, diagramas de interaçãosão aplicados para mostrar a realização de casos de uso e as possíveis seqüências de interaçãoentre objetos.

O diagrama de interação deve ser usado quando se deseja visualizar ocomportamento de vários objetos dentro de um único caso de uso, a partir de mensagens

 passadas entre eles. Para se compreender o comportamento de um único objeto para muitoscasos de uso, é melhor empregar um diagrama de estado; para se analisar o comportamento demuitos casos de uso é recomendado o diagrama de atividade. Os diagramas de interação sãoapresentados de duas formas (equivalentes) em UML:

•  Diagrama de Seqüência: Enfatiza o comportamento dos objetos em um sistemaincluindo suas operações, interações, colaborações e histórias de estado em

seqüência temporal de mensagem e representação explícita de ativação deoperações. Os objetos são desenhados como linhas verticais, as mensagens comolinhas horizontais e a seqüência de mensagens é lida de cima para baixo; 

•  Diagrama de Colaboração: Mostra o contexto completo de uma interação,inclusive os objetos e seus relacionamentos pertinentes a uma interação

 particular, sendo freqüentemente melhores para propósitos de projeto. 

A figura a seguir mostra um exemplo de um diagrama de seqüência (enfatizando aordem de chamamento) e um diagrama de colaboração (enfatizando a interação entre osobjetos).

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 22/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

Figura 33 Diagramas de Seqüência e Colaboração.

4.1 Diagrama de Seqüência

Um diagrama de seqüência mostra interações de objetos organizadas em umaseqüência de tempo e de mensagens trocadas, mas não trata associações entre os objetos como

os diagramas de colaboração.A Figura 34 apresenta a notação utilizada para diagrama de seqüência onde são

mostrados os seus elementos básicos.

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 23/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

Figura 34 Elementos de um diagrama de seqüência UML [FUR98]

Um exemplo de diagrama de seqüência para o empréstimo de um livro em umsistema de bibliotecas é apresentado na figura a seguir. Neste exemplo, o bibliotecário acessaa janela de empréstimo que enviará mensagem para encontrar o título. Encontrado o título,

  busca-se a disponibilidade do item, identifica-se o usuário e faz-se o empréstimo. Outroexemplo de diagrama de seqüência é mostrado na Figura 36, retratando o processo de venda.

Figura 35. Exemplo de diagrama de seqüência para biblioteca [FUR 98].

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 24/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

Figura 36. Exemplo de diagrama de seqüência para um sistema de vendas.

4.2 Diagrama de Colaboração

Um diagrama de colaboração mostra uma interação organizada em torno de objetos eseus vínculos formando uma base de padrões.

O diagrama de seqüência e diagrama de colaboração expressam a mesma informaçãomas a apresentam de forma diferente. O primeiro exibe uma seqüência explícita de mensagense é melhor para especificações de tempo real (dimensão tempo) e para cenários complexos,enquanto o segundo mostra os vínculos entre objetos e é melhor para entender os efeitos emum determinado objeto (dimensão espaço). Para decidir qual diagrama deve ser utilizado paraestudar uma interação, uma regra geral é escolher o diagrama de colaboração quando o objetoe seus vínculos facilitam a compreensão da interação, e escolher o diagrama de seqüência

somente se a seqüência necessita ser evidenciada.Ao contrário de um diagrama de seqüência, um diagrama de colaboração mostra os

relacionamentos entre os objetos, mas não trata o tempo como uma dimensão separada. Aseqüência de tempo é indicada numerando-se as mensagens. Em um diagrama de colaboraçãoas classes e objetos são representados como na Figura 37.

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 25/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

Figura 37. Elementos de um diagrama de colaboração.

A Figura 38 mostra a chamada de métodos em um diagrama de colaboração e a

Figura 39 mostra algumas convenções utilizadas quando um método é chamado. A Figura 40mostra o uso de parâmetros de métodos no diagrama de colaboração, onde é possível chamar um método com argumentos declarando a variável e o tipo de retorno.

Figura 38. Notação UML para diagramas de colaboração. 

Figura 39. Convenções do diagrama de colaboração.

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 26/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

Figura 40. Parâmetros de métodos em diagramas de colaboração. 

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 27/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

5 ESTUDOS DE CASO E EXERCÍCIOS

5.1 Estudo de Caso 1: Locadora de Veículos

Modelar um sistema OO tomando por partida a definição abaixo:

“O cliente é sócio-proprietário de uma rede de locadora de carros que possui váriasfiliais espalhadas por vários estados brasileiros e países do Mercosul. Cada filial possuidiversos carros para alugar. Existem vários tipos de carro: popular, luxo, utilitário, etc. Oscarros possuem código (chapa do carro), tipo, modelo, ano, cor, chassis, km e valor doaluguel (diárias e semanais). Os clientes da locadora podem reservar e alugar carros. Existemclientes especiais e clientes comuns. Os especiais possuem uma taxa de desconto e um valor de quilometragem extra para seus aluguéis. Para cada aluguel é emitida uma nota fiscal com aquilometragem percorrida e o valor do aluguel. A locadora possui funcionários que trabalhamnas filiais. As filiais são identificadas por código, nome cidade, endereço e telefones. Osclientes são identificados por código, nome, cpf, telefone, endereço, cidade. E os funcionáriossão identificados por código, nome, endereço, telefone, cidade.”

5.2 Estudo de Caso 2: Hospital

Modelar um hospital com vários setores e funcionários que presta vários tipos de serviço aos pacientes conforme características abaixo:

•  Setores são compostos de vários sub-setores. Cada setor está dividido em salas.Existem salas de cirurgia, consultórios, apartamentos, etc.

•  Os funcionários do hospital trabalham em setores e são médicos, enfermeiros e  pessoal administrativo com diversos cargos. Existem equipes de médicos eenfermeiros com um médico como supervisor da equipe;

•  Os pacientes são submetidos a procedimentos no hospital. Procedimentos são pagos por convênios ou pelo próprio paciente (particular) e podem ser:

-  Cirurgias: ocupando salas de cirurgia com equipe médica responsável;

-  Internações: ocupando enfermarias ou quartos e com tratamento prescrito(medicação e dieta);

-  Consultas: com data, hora, diagnóstico, exames solicitados e receita médica,ocupando consultórios e com médico responsável;

-  Exames: solicitados em consultas médicas, registrando os resultados;

-  Outros procedimentos de hospital.

•  Definir novos requisitos para o sistema

5/8/2018 Apostila Muito Boa de UML - Professor UFRGS - slidepdf.com

http://slidepdf.com/reader/full/apostila-muito-boa-de-uml-professor-ufrgs 28/28

 

Usando UML para Especificação de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis - Fevereiro/2003

REFERÊNCIAS BIBLIOGRÁFICAS

[BEZ02] BEZERRA, E. Princípios de Análise e Projeto de Sistemas com UML. São Paulo:Campus, 2002.

[BOO94] BOOCH, G. Object-Oriented Analysis and Design with Applications. Benjamim-Cummings Publishing Co., 1994.

[BOO00] BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: Guia do Usuário. SãoPaulo: Campus, 2000.

[CHE90] CHEN, P. Modelagem de Dados: A abordagem Entidade-Relacionamento paraProjeto Lógico. Makron Books, 1990.

[COA98] COAD, P.; MAYFIELD, M. Projeto de Sistemas em Java: Construindoaplicativos e melhores applets. São Paulo: Makron Books, 1998.

[ERI98] ERIKSSON, H.; PENKER, M. UML Toolkit. Wiley Computer Publishing, 1998.

[FUR98] FURLAN, J.D. Modelagem de Objetos através da UML. São Paulo: MakronBooks, 1998.

[GUE91] GUEZZI, C.; JAZAYERI, M. Fundamentals of Software Engineering. Prentice-Hall, 1991.

[HEU 99] HEUSER, C. A. Projeto Orientado a Objetos. Apostila de curso. Obtida emhttp://heuser.inf.ufrgs.br 

[JAC92] JACOBSON, I. et. al. Object-Oriented Software Engineering: A Use Case DrivenApproach. Addison-Wesley Publishing Co., 1992.

[JAC99] JACOBSON, I.; BOOCH, G.; RUMBAUGH, J. The Unified Process. In: IEEESoftware. p. 96-102. May/June 1999.

[RUM94] RUMBAUGH, J. et. al. Modelagem e Projetos Baseados em Objetos. São Paulo:Campus, 1994.

[TOG00] Together Inc. (http://www.togethersoft.com)