Upload
weliton-junior
View
878
Download
0
Embed Size (px)
Citation preview
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