54
Exercício Dentre as tarefas habituais de uma secretária, existe a de controlar o uso das três salas de reunião, que são utilizadas por todos os setores da empresa. Ela possui pastas de trabalho em Excel para cada mês do ano e, dentro de cada pasta, existem de vinte oito a trinta e uma planilhas, uma para cada dia do mês. Na planilha, ela criou a coluna de horários e três colunas, uma para cada sala de reunião. Num controle à parte, ela relaciona o nome do funcionário, seu cargo e ramal. Além da alocação, surge frequentemente a necessidade de realocação de uma reunião, mudando sala e/ou data e/ou horário. Outra consulta constante que é feita à secretária, pelos diretores, é sobre as salas que estarão livres numa determinada data, numa faixa de horário. Para cada sala, precisa-se saber o número de lugares. 1

Curso de UML Aula 03 _ Parte 01

Embed Size (px)

Citation preview

Page 1: Curso de UML Aula 03 _ Parte 01

Exercício

Dentre as tarefas habituais de uma secretária, existe a de controlar o uso das três salas de reunião, que são utilizadas por todos os setores da empresa.

Ela possui pastas de trabalho em Excel para cada mês do ano e, dentro de cada pasta, existem de vinte oito a trinta e uma planilhas, uma para cada dia do mês.

Na planilha, ela criou a coluna de horários e três colunas, uma para cada sala de reunião. Num controle à parte, ela relaciona o nome do funcionário, seu cargo e ramal. Além da alocação, surge frequentemente a necessidade de realocação de uma reunião, mudando sala e/ou data e/ou horário.

Outra consulta constante que é feita à secretária, pelos diretores, é sobre as salas que estarão livres numa determinada data, numa faixa de horário.

Para cada sala, precisa-se saber o número de lugares.

1

Page 2: Curso de UML Aula 03 _ Parte 01

Exercício - continuação

Veja o exemplo da planilha:

Identifique as classes, atributos e métodos desse cenário.Desenhe o diagrama de classes, especificando relacionamentos e as

multiplicidades.

2

Horário Sala 01 Sala 02 Sala 0308h3009h09h3010h10h3011h11h30

Dr. Glauco - Assunto: processo

empresa Mar e Lua

Dra. Maria - Assunto:

palestra sobre a nova lei de falências

Mariana - Assunto: análise de material

Dra. Maria - Assunto: reunião de projeto

Page 3: Curso de UML Aula 03 _ Parte 01

Resolução do exercício

Classe Atributos Métodos

AlocacaoSala sala: SalaReuniaodataAlocacao: datehoraInicioAlocacao: timehoraFimAlocacao: timeResponsavel: FuncionarioAssunto: string

alocar()realocar(novaData: date, novaHoraInicio:time, novaHoraFim:time, novaSala:SalaReuniao)cancelar()

Funcionario nome:stringcargo:stringramal:string

cadastrar()

SalaReuniao numero: intqtdLugares: int

cadastrar()obterSalaLivre(data:date,horaInicio:time,horaFim:time): <Lista>SalaReuniao

3

Page 4: Curso de UML Aula 03 _ Parte 01

Resolução do exercício

4

Page 5: Curso de UML Aula 03 _ Parte 01

Resolução - Comentários

Toda alocação de sala registra qual sala foi alocada e qual foi o funcionário responsável pelo pedido de alocação. Isso cria os relacionamentos entre as classes AlocacaoSala, SalaReuniao e Funcionario.

Notem que o cenário não citou a necessidade de se cadastrar o assunto da reunião, mas essa informação é relevante, pois aparece em todas as alocações registradas na planilha. Isso mostra que, ao levantarmos os requisitos de uma aplicação, não basta levarmos somente em conta o que nos é dito.

O método obterSalaLivre é de classe, pois sua execução não é sobre um objeto e sim sobre toda a coleção de objetos SalaReuniao. O resultado desse método é um conjunto (uma coleção) de objetos SalaReuniao, que pode ser vazio (nenhuma sala disponível), unitário ou retornar todas as salas disponíveis em determinada data/horário.

5

Page 6: Curso de UML Aula 03 _ Parte 01

Exercício

Considerando ainda o cenário anterior, existe a necessidade de se controlar os materiais de apoio utilizados nas salas. É preciso controlar os materiais que estão alocados e para quais salas. Exemplo: retroprojetor – Sala 01, das 9 às 10:30; notebook – sala 02 das 10 as 12h.

Verifique se existe necessidade de incluir novas classes, atributos e métodos para atender ao novo requisito. Atualize o diagrama com as novas alterações.

6

Page 7: Curso de UML Aula 03 _ Parte 01

Resolução do exercício

7

Classe Atributos MétodosAlocacaoSala sala: SalaReuniao

dataAlocacao: datehoraInicioAlocacao: timehoraFimAlocacao: timeResponsavel: FuncionarioAssunto: stringlistaMateriaisAlocados: <Lista>Material

alocar()realocar(novaData: date, novaHoraInicio:time, novaHoraFim:time, novaSala:SalaReuniao)cancelar()

Funcionario nome:stringcargo:stringramal:string

cadastrar()

SalaReuniao numero: intqtdLugares: int

cadastrar()obterSalaLivre(data:date,horaInicio:time, horaFim:time): <Lista>SalaReuniao

Material nome : string cadastrar()buscaMaterial(data:date, horaInicioAlocacao:time, horaFimAlocacao):SalaReuniao

Page 8: Curso de UML Aula 03 _ Parte 01

Resolução do exercício

8

Page 9: Curso de UML Aula 03 _ Parte 01

9

Diagrama de SeqüênciaDiagrama de Colaboração

UML – Diagramas de Interação

Page 10: Curso de UML Aula 03 _ Parte 01

10

UML - DIAGRAMAS DE INTERAÇÃO

Modelam os aspectos dinâmicos do sistema Contém: Objetos VínculosMensagens

Tipicamente, um diagrama de interação captura comportamento em um caso de uso

Descrevem como grupos de objetos colaboram num contexto de um cenário

Existem 2 tipos de diagramas de interação:Diagrama de Seqüência Diagrama de Colaboração

Page 11: Curso de UML Aula 03 _ Parte 01

11

Cenários:Instância de um caso de uso, descrevendo como

este funcionaÉ um caminho através do fluxo de eventos de um

caso de usoFluxo de eventos: documentado via texto Cenário : documentado via diagramas de

interaçãoDocumenta como as responsabilidades são

divididas entre classes e objetos

UML - DIAGRAMAS DE INTERAÇÃO

Page 12: Curso de UML Aula 03 _ Parte 01

12

Interação em caso de usoInclui uma seqüência de trocas de mensagens

entre um conjunto de objetos para realização de um caso de usoAs mensagens podem incluir sinais e chamadas

implícitas Em modelagem comportamental é comum

descrever vários cenários para cada caso de usoPara especificar uma interação é necessário

definir um contexto de caso de uso e estabelecer os objetos que interagem e seus relacionamentos

UML - DIAGRAMAS DE INTERAÇÃO

Page 13: Curso de UML Aula 03 _ Parte 01

13

Interação em caso de uso

Ator

evento deentrada

(estímulo)mensagem

Ator

evento desaída

(resposta)

objeto objeto

UML - DIAGRAMAS DE INTERAÇÃO

Tempo

Page 14: Curso de UML Aula 03 _ Parte 01

14

Diagrama de Seqüência X Diagrama de Colaboração

Page 15: Curso de UML Aula 03 _ Parte 01

15

UML - DIAGRAMAS DE INTERAÇÃO

Diagrama de SeqüênciaMostra a interação entre objetos tendo em vista a

seqüência das mensagens no tempoMostra no cenário:Objetos e classes envolvidosA seqüência de mensagens trocadas pelos objetos

Elementos: Linha da vida, ativação, auto chamada, condição ,

retorno, iteração

Page 16: Curso de UML Aula 03 _ Parte 01

16

Diagrama de Sequência

Apresenta o conjunto de mensagens trocadas entre objetos na execução de transações.

Cada diagrama mostra um cenário de execução de uma transação.

Elementos de Modelagem: Papéis, objetos são representados pelo papel que desempenham

na transação, mas não são referenciados diretamente; Mensagens, representam a execução de uma operação de uma

classe ou a ocorrência de um evento em uma máquina de estados, e são ordenadas no tempo (de cima para baixo);

Linha de vida, representa o período de existência de um objeto; Período de atividade, representa os períodos em que um objeto

está ativo.

Page 17: Curso de UML Aula 03 _ Parte 01

17

Diagrama de Sequência

Page 18: Curso de UML Aula 03 _ Parte 01

18

UML - DIAGRAMAS DE INTERAÇÃO

um objeto

tempo

um novoobjeto

[se novo]criar( )

condição de guarda

mensagem

autodelegação

símbolo de exclusão

linha de vida

ativação

mensagem

retornar

excluir

DIAGRAMA DE SEQÜÊNCIA

objeto

Page 19: Curso de UML Aula 03 _ Parte 01

19

UML - DIAGRAMAS DE INTERAÇÃO

Diagrama de Seqüência (detalhes da notação)Linha de vida do objeto

Ativação determina a janela de tempo na qual um objeto está

executando um ação

Auto-delegação

Mensagem...

Page 20: Curso de UML Aula 03 _ Parte 01

20

Diagrama de Seqüência (detalhes da notação)Mensagemrótulos:predecessor cond-guarda exp-sequencia valr retorno:=

nome-da-mensagem lista-de-argumentoexpressão de seqüência - 1.1.2: , 1.2.3: , 3.1a: , 3.1b: predecessor - 1.1, 1.2 / 1.3 : continue ( ) condições de guarda - [cláusula-de-condição]

3.1 [x < 0] : abc ( )3.2 [x >= 0] : def ( )

iterações - * [cláusula-de-interação]1.1 * [n := 1..10]: execute ( )

valor de retorno := nome-da-msg lista-arg1.4.5: x := calcular (n)

EX: 2 * [n : = 1 .. 8] : Acumulado := calcularNext (n)

UML - DIAGRAMAS DE INTERAÇÃO

Page 21: Curso de UML Aula 03 _ Parte 01

21

Diagrama de Seqüência (detalhes da notação)Mensagemtipos:

síncrona : o remetente espera o destinatário aceitar a msg antes de continuar seu processamento. Usada nas chamadas de procedimento comuns

simples: fluxo de controle simples,mostra como o controle é passado de um objeto para outro sem descrever qualquer detalhe de comunicação. Usado quando detalhes sobre a comunicação são desconhecidos ou irrelevantes, ou ainda, para indicar retorno de mensagem

assíncrona : O remetente envia a mensagem e continua o processamento sem esperar pelo recebimento desta por parte do destinatário

UML - DIAGRAMAS DE INTERAÇÃO

Page 22: Curso de UML Aula 03 _ Parte 01

22

UML - DIAGRAMAS DE INTERAÇÃO

Nome ator: classe ator

objeto1:nome da classe

2:operação 3:operação(lista de parâmetros)

DIAGRAMA DE SEQÜÊNCIA

1:evento

objeto2: :nome da classe

4:operação(lista de parâmetros)

textodescript

Page 23: Curso de UML Aula 03 _ Parte 01

23

UML - DIAGRAMAS DE INTERAÇÃO

objeto1:nome da classe

[X <= 0]

DIAGRAMA DE SEQÜÊNCIA

objeto2: objeto3

[X > 0]

Page 24: Curso de UML Aula 03 _ Parte 01

24

UML - DIAGRAMAS DE INTERAÇÃO

Diagrama de SeqüênciaSeja o caso de uso: a universidade decide lançar

neste semestre mais um curso de graduação. Cabe então ao secretário da Divisão de Graduação proceder a inclusão do novo curso no sistema.

secretário incluir novo curso

Page 25: Curso de UML Aula 03 _ Parte 01

25

UML - DIAGRAMAS DE INTERAÇÃO

:Secret

frmCurso oCurso: CursoctlProcesso

1:informações curso

3: inclusão curso4: novo curso

DIAGRAMA DE SEQÜÊNCIA : Criar Novo Curso

Exibição Aplicação Dados

2: processar

Page 26: Curso de UML Aula 03 _ Parte 01

26

UML - DIAGRAMAS DE INTERAÇÃO

Diagrama de ColaboraçãoOutra forma de representar cenáriosColaboração: visão de um conjunto de elementos

relacionados para um propósito específicoMostra uma interação organizada em torno de

objetos e seus vínculosÉ formado por:Objetos (retângulos)Interações entre objetos (linhas ligando objetos)Mensagens (texto e setas)

Page 27: Curso de UML Aula 03 _ Parte 01

27

Diagrama de Colaboração

Modela objetos e ligações de uma interação:Apresenta somente os objetos e ligações

significativas para a interação;As mensagens são numeradas

sequencialmente;Mostra implementação de operações,

descrevendo parâmetros e variáveis locais usadas.

Page 28: Curso de UML Aula 03 _ Parte 01

28

Diagrama de Colaboração

Page 29: Curso de UML Aula 03 _ Parte 01

29

UML - DIAGRAMAS DE INTERAÇÃO

nome do ator:classe do ator

objeto2

Objeto3 : nomeda classe

:classe

3:operação(lista parâmetros)

2: mensagemsimples

nome do papel

DIAGRAMA DE COLABORAÇÃO

1.1: mensagem de [condição] ( ) 1.2:mensagem simples

objeto1: nome da classe

1: evento

4: mensagemsimples

Page 30: Curso de UML Aula 03 _ Parte 01

30

UML - DIAGRAMAS DE INTERAÇÃO

:Secret

frmCurso

oCurso: Curso ctlProcesso

1:informações curso2: processar

3:inc. curso

DIAGRAMA DE COLABORAÇÃO: Criar Novo Curso

4: novo curso

Page 31: Curso de UML Aula 03 _ Parte 01

31

UML - DIAGRAMAS DE INTERAÇÃO

Diagrama de Seqüência muito útil no início da

análise exibe o cenário dando

ênfase à ordem cronológica em que as mensagens ocorrem entre os objetos

ênfase na progressão

Diagrama Colaboração mais útil em tempo de

projeto fornece uma visão geral do

cenário ajuda a identificar todas as

interações entre os objetos ênfase na estrutura

Por que 2 diagramas ??

Page 32: Curso de UML Aula 03 _ Parte 01

32

Diagramas – Sequência X Colaboração

InteraçõesAspecto

Seqüência no tempo

Relacionamento entre papéis

Seqüência Visível (explícito) graficamente

implícito

Colaboração Implícito (pelos números de seqüência)

Visual, relacionando mensagens a ligações entre papéis

Page 33: Curso de UML Aula 03 _ Parte 01

33

UML - DIAGRAMAS DE INTERAÇÃO

Quando utilizar Diagramas de Interação

Você deve utilizar diagramas de interaçãoquando quiser observar o comportamentode vários objetos dentro de um único casode uso. Esses diagramas são bons para mostrar as colaborações entre objetos. Eles não são tãobons para uma definição precisa decomportamento. (Martin Fowler)

Page 34: Curso de UML Aula 03 _ Parte 01

34

UML - DIAGRAMAS DE INTERAÇÃO

Exemplo: Construa os Diagramas de InteraçãoNum sistema de vendas, considere o caso de uso

Atender Pedido, o qual captura procedimentos necessários para atender o pedido de cliente. Abaixo segue a descrição do cenário:Uma janela Entrada de Pedido envia mensagem

“preparar” para um pedidoO Pedido envia “preparar” para cada Item do Pedido Cada Item do Pedido verifica o Item de Estoque

Se verificação “OK”, o Item de Pedido subtrai quantidade do estoque e cria um Item de Entrega

Se quantidade Estoque abaixo do nível de pedido, o Item de Estoque solicita uma ordem de reposição

Page 35: Curso de UML Aula 03 _ Parte 01

35

UML - DIAGRAMAS DE INTERAÇÃO

um pedido um item deEstoque

um item dePedido

preparar ( )

* preparar ( )verificar( )

DIAGRAMA DE SEQÜÊNCIA

[temEstoque]retirar( )

Janela entrada de pedido

um item deentrega

precisaRepor( )

um item deReposição[temEstoque]

new( )

[precisaReposição]new ( )

Page 36: Curso de UML Aula 03 _ Parte 01

36

UML - DIAGRAMAS DE INTERAÇÃO

:Pedido

Estoque de RedBull:Item de Estoque

1: preparar ( )

5: precisaRepor

DIAGRAMA DE COLABORAÇÃOJanela

entrada de pedido

3: verificar( )4:[ temEstoque] := retirar ( )

:Item deReposição

6: [precisaReposição]: new( )

2*[ para todas as linhas depedido] : preparar ( )

RedBull:Item dePedido

uma item de entrega

7: [temEstoque]: new ( )

Page 37: Curso de UML Aula 03 _ Parte 01

Exercícios

Elaborar um diagrama de sequência para o cenário de uma abertura de conta comum. Esse processo irá utilizar as classes PessoaFisica, ContaComum e Historico definidas a

seguir. Como atores do processo teremos o ator Cliente e o ator Banco (que se refere aos

funcionários da instituição bancária)

37

Page 38: Curso de UML Aula 03 _ Parte 01

Resolução do exercício

38

Page 39: Curso de UML Aula 03 _ Parte 01

Exercício

Elaborar um diagrama de sequência para representar um cenário de encerramento de conta.

Vamos utilizar o exemplo anterior com o incremento da classe ContaComum com novos métodos.

39

Page 40: Curso de UML Aula 03 _ Parte 01

Resolução do exercício

40

Page 41: Curso de UML Aula 03 _ Parte 01

Exercício

Elaborar um diagrama de colaboração que represente o mesmo processo descrito no diagrama de sequência de abertura de conta comum.

41

Page 42: Curso de UML Aula 03 _ Parte 01

Resolução do exercício

42

Page 43: Curso de UML Aula 03 _ Parte 01

Resolução do exercício

43

Page 44: Curso de UML Aula 03 _ Parte 01

Exercício

Elaborar um diagrama de colaboração que represente o mesmo processo descrito no diagrama de sequência de encerramento de conta comum.

44

Page 45: Curso de UML Aula 03 _ Parte 01

Resolução do exercício

45

Page 46: Curso de UML Aula 03 _ Parte 01

46

PACOTES Como “quebrar” um grande sistema em sub-sistemas

pequenos? Métodos Estruturados : Decomposição FuncionalUML : Pacote (package) - agrupar classes em unidades de

mais alto nível A idéia de um pacote pode ser aplicada a qualquer elemento

do modelo, não somente classesUm “Diagrama de Pacotes” mostra pacotes de classes e as

dependências entre eles Relacionamento de Dependência

UML - PACOTES

Page 47: Curso de UML Aula 03 _ Parte 01

Diagrama de Pacotes

Tem por objetivo representar sub-sistemas englobados por um sistema de forma a determinar as partes que o compõem.

47

Page 48: Curso de UML Aula 03 _ Parte 01

Diagrama de Pacotes

48

Page 49: Curso de UML Aula 03 _ Parte 01

49

UML - ‘DIAGRAMA DE PACOTES ‘

AWTIU

Proc.PedidoIU

Mala Direta

APLICAÇÃOMala Direta

APLICAÇÃOProc. Pedido

PEDIDOS CLIENTES

Page 50: Curso de UML Aula 03 _ Parte 01

UML – Diagrama de Componentes

Apresenta uma visão estática de como o sistema será implementado e quais os seus módulos do software, ou seja, seus componentes.

Amplamente ligado à linguagem de programação em que o projeto será implementado.

Procura identificar os arquivos que comporão o software em termos de módulos, bibliotecas, formulários, etc.

Exibe o relacionamento entre os componentes Destaca a função de cada módulo e facilita sua reutilização em outros

sistemas.

50

Page 51: Curso de UML Aula 03 _ Parte 01

UML – Diagrama de Componentes

EsteriótiposExecutávelBibliotecaTabelaDocumentoArquivo

51

Page 52: Curso de UML Aula 03 _ Parte 01

UML – Diagrama de Componentes

52

Page 53: Curso de UML Aula 03 _ Parte 01

UML – Diagrama de Componentes

Dependência

53

Page 54: Curso de UML Aula 03 _ Parte 01

UML – Diagrama de Componentes

Exemplo de Diagrama de Componentes para a estrutura de um código-fonte de um sistema de controle bancário, escrito em C++

54