Curso de UML Aula 03 _ Parte 01

Post on 12-Jun-2015

878 views 0 download

Transcript of 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

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

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

Resolução do exercício

4

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

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

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

Resolução do exercício

8

9

Diagrama de SeqüênciaDiagrama de Colaboração

UML – Diagramas de Interação

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

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

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

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

14

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

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

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.

17

Diagrama de Sequência

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

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...

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

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

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

23

UML - DIAGRAMAS DE INTERAÇÃO

objeto1:nome da classe

[X <= 0]

DIAGRAMA DE SEQÜÊNCIA

objeto2: objeto3

[X > 0]

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

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

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)

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.

28

Diagrama de Colaboração

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

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

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 ??

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

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)

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

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 ( )

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 ( )

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

Resolução do exercício

38

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

Resolução do exercício

40

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

Resolução do exercício

42

Resolução do exercício

43

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

Resolução do exercício

45

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

Diagrama de Pacotes

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

47

Diagrama de Pacotes

48

49

UML - ‘DIAGRAMA DE PACOTES ‘

AWTIU

Proc.PedidoIU

Mala Direta

APLICAÇÃOMala Direta

APLICAÇÃOProc. Pedido

PEDIDOS CLIENTES

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

UML – Diagrama de Componentes

EsteriótiposExecutávelBibliotecaTabelaDocumentoArquivo

51

UML – Diagrama de Componentes

52

UML – Diagrama de Componentes

Dependência

53

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