01. Desenhe um diagrama de objetos para o diagrama de classes abaixo:
P1:Projeto
descrição= ―Desenvolvimento do Sistema DKA‖ inicio = 01/12/2006
fim = 02/02/2007 custo = 6000,00
F1:FuncionarioContratado nome = ―Porsidônio Souza‖
cargo = ―Analista de Sistemas‖ salário = 3500,00
carteiraProfissional = ―02468-0‖ dataAdmissao = ―01/10/2000‖
F1:FuncionarioContratado nome = ―Firminiano Neves‖
cargo = ―Analista de Sistemas‖ salário = 3800,00
carteiraProfissional = ―01357-9‖ dataAdmissao = ―15/01/1995‖
F1:FuncionarioTerceirizado nome = ―Silvio Abreu‖
cargo = ―Analista de Sistemas‖ salário = 2500,00 inicioContrato = ―02/12/2006‖ fimContrato = ―26/02/2007‖ prestadoraServiço = ―SISTEM‖ taxaAdministrativa = 6 gerente
02. Suponha um objeto Matemática de uma classe Disciplina. Escreva as formas nas quais podemos representar esse objeto.
03. Marque dentre os elementos abaixo quais podem ser colocamos em um diagrama de objetos:
( ) tipo dos atributos ( ) valor dos atributos ( ) nome de papel ( ) nome de associação ( ) multiplicidade ( ) agregação ( ) composição ( ) navegação ( ) notas ( ) restrições
04. Em UML, um diagrama de objetos (Concurso Serpro-2001- Técnico/Programador de Computador):
a) é a representação de um conjunto de classes.
b) é a representação do relacionamento entre interfaces.
c) representa retratos estáticos de instâncias de itens encontrados em diagramas de classes.
d) abrange a visão dinâmica de um sistema.
e) mostra a configuração dos nós de processamento em tempo de execução.
TAREFA 07 – DIAGRAMA DE CLASSES E DIAGRAMA DE OBJETOS (1,0)
Para este sistema, o gerente deve cadastrar agências, clientes e abrir e fechar contas bancárias. Um cliente possui nome, endereço e telefone. Um cliente pode abrir várias contas e uma conta pode ser de vários clientes, para o caso de contas conjuntas.
Contas são de uma determinada agência (que possui nome e número), além de poderem estar vinculadas a uma conta de investimento, que nada mais é que outra conta bancária. Contas ainda devem possuir um número (formado pelo número da agência e pelo número da própria conta) e saldo disponível, podendo ser corrente normal, corrente especial e poupança.
Para contas poupança, devem-se armazenar os dias de vencimento e, para contas corrente especiais, informar o limite de crédito. Contas ainda possuem movimentações de saque e depósito, que devem ter data e valor, além do tipo de movimento, que pode ser débito ou crédito.
Clientes ainda podem solicitar cartões de contas bancárias, que devem ter número, validade e senha para cada cliente, além de talões de cheques para contas correntes, que devem armazenar o número inicial e final das folhas do talão. O sistema ainda deve permitir aos clientes consultar saldos e extratos.
D
DIIAAGGR R AAMMAA DDEE SSEEQQUUEENNCCIIAASS
Vamos imaginar a seguinte situação:
Figura 87 – Exemplo de situação do cotidiano
Um diagrama de sequências exibe a troca de mensagens entre os objetos na ordem em que elas acontecem, não mostrando os detalhes do que precisa para isto acontecer. A representação gráfica é feita assim:
o OBJETOS: retângulo alinhado no topo do diagrama partindo dele
uma linha vertical tracejada chamada LINHA DE VIDA desenhada até o fim do diagrama. Exemplo:
Figura 88 – Exemplo de Objeto
o CRIAÇÃO DE UM OBJETO: a seta que representa essa mensagem é
desenhada de forma a apontar sua cabeça para o símbolo do objeto. Pode conter o esteriótipo <<create>>.
Figura 89 – Exemplo de criação de objetos
o DESTRUIÇÃO DE UM OBJETO: a seta que representa essa
mensagem é direcionada a um grande X colocado no final da linha de vida. Pode conter o esteriótipo <<destroy>>.
Relatório de Comissões
Preciso da lista de vendedores com o total de vendas.
Resposta:
100 – Afonso – 15.000,00 215 – Andréa – 30.000,00
A quem pertence a matrícula 10 0?
RESPOSTA: 100 - Afonso LivroA:Livro :Funcionário :ContraCheque novo()
Figura 90 – Exemplo de destruição de objeto
o MENSAGENS: são enviadas de um objeto a outro, por meios das
setas que partem de uma linha de vida a outra, identificadas por um nome de operação. Estas mensagens podem ser numeradas. Ativação: é quando um método de um objeto está sendo
executado. Exemplo:
Figura 91 – Exemplo de troca de mensagens
A iteração representa o envio da mesma mensagem diversas vezes para o mesmo objeto, sendo comum o tratamento de coleções de objetos. A representação é feita dentro de colchetes, incluindo ates do colchete inicial, o asterisco (*). Exemplo:
*[para cada aluno da turma] CalcularMedia()
Chamada recursiva ou auto-chamada é quando um objeto passa mensagem para ele próprio. Exemplo:
Figura 92 – Exemplo de iteração
O diagrama de sequências pode ser desenhado dentro de um frame (versão 2.0) que identificará o diagrama. Use o prefixo sd( sequence
diagram) para indicar o tipo de interação.
:Funcionário :Benefício excluirBenefício()
x
:Curso :Aluno Ativação Mensagem de retorno obterNome(matrícula) Mensagem Iteração Coordenador cursoX:Curso disc1:Disciplina obterGrade() Grade*[para cada disciplina] obterInfDisciplina(cursoX)
[se a Disciplina tem PreReq] obterPreRequisito(disc1)
auto-chamada
condição: só se for verdadeira
Figura 93 – Exemplo de diagrama sequência
O diagrama de sequências é frequentemente usado para representar cenários de casos de uso. Exemplo: CASO DE USO REGISTRAR VENDAS:
Diagrama de Classes:
Figura 94 – Exemplo de Diagrama de Classes
Caso de Uso: Registrar vendas
Objetivo: permite cadastrar as vendas efetuadas pelos vendedores. Ator: assistente de gerência
Cenário Principal
1. O sistema prepara uma lista dos vendedores cadastrados na loja. 2. O usuário informa o número da venda.
3. O usuário informa ainda: a data da venda e o valor da venda.
4. O usuário seleciona o vendedor que efetuou a venda, a partir da lista já montada pelo sistema.
5. O sistema efetua a gravação da venda. Cenário Alternativo: Venda já cadastrada.
2ª. Se o número da venda já estiver cadastrado, informar ao usuário, mostrar as informações da venda na tela e entrar em modo de alteração dos dados.
sd DiagramaSeq1 objeto1 objeto2 mensagem Vendedor matrícula : string nome : string dataAdmissao : date salarioBruto : real /salarioLiquido : real percentualComissao : real obterListaVendedoresAtivos() calcularSalarioLiquido(dataRef) : real Venda numero : integer data : date valor : real grava() 1 0..*
Diagrama de Sequências:
Figura 95 – Exemplo de diagrama de sequência
EXEMPLO: ESTUDO DE CASO: SISTEMA GESTOR DE VOTAÇÃO INTERNA
:TelaCadastro :Venda :Vendedor
Assistente de Gerência numero_venda data, valor seleção do vendedor obterListaVendedoresAtivos() busca(número_venda) grava() Vamos fazer juntos???
Com base nas especificações de caso de uso abaixo, vamos criar o diagrama de sequências:
Listagem 1. UC Manter Eleição
Descrição: Este caso de uso tem por objetivo manter o cadastro de eleições, permitindo a inclusão, alteração, exclusão ou consulta de eleições.
Atores: Coordenadoria de Eleições Cenário principal:
1. O sistema prepara uma lista de eleições cadastradas, exibindo para cada uma: objetivo, data da eleição, status da apuração.
1.1. O usuário pode pesquisar uma eleição, informando os seguintes critérios:
- objetivo ou
- período inicial e final em que ocorreu a eleição 2. O sistema habilita as seguintes opções para o usuário:
2.1. Inclusão de eleição 2.2. Alteração de eleição
2.2.1. Para alteração, o usuário deve pré-selecionar a eleição 2.3. Exclusão de eleição
2.3.1. Para exclusão, o usuário deve pré-selecionar a eleição 3. Para a opção de ―Inclusão‖ ou ―Alteração‖:
3.1. O usuário informa/edita: 3.1.1. objetivo da eleição 3.1.2. data da eleição 4. Para a opção de ―Exclusão‖:
4.1. O sistema exibe os dados do item 3.1 desabilitados para edição. 4.2. O usuário confirma a exclusão da eleição.
5. O usuário confirma a operação.
5.1. O sistema atualiza o cadastro de eleições. Cenários alternativos:
Pesquisa de eleição
1.a. A pesquisa de eleição deve desconsiderar caixa alta e baixa, acentuação e realizar a localização dos trechos em qualquer ordem que os mesmos
apareçam no cadastro.
1.b. A pesquisa de período deve ser feita considerando os períodos inicial e final, inclusive; podendo ser informado apenas um dos períodos.
Permissão de “Alteração” da eleição
2.a. Se já houver data que indique o início da votação, a eleição não poderá ser alterada. Exibir mensagem de erro e retornar ao passo 1.
Permissão de “Exclusão” da eleição
2.b. Se já houver data que indique o início da votação, a eleição não poderá ser excluída. Exibir mensagem de erro e retornar ao passo 1.
Validação da data de eleição
3.a. Se o usuário informar uma data de eleição que não seja futura, exibir mensagem de erro e retornar ao passo 3.
3.a. Se o usuário informar uma data de eleição futura que já esteja cadastrada para outra eleição, exibir mensagem de erro informando a qual eleição a data já está cadastrada e retornar ao passo 3.
Listagem 2. UC Manter Candidatos
Descrição: Este caso de uso tem por objetivo manter o cadastro de candidatos, permitindo a inclusão, alteração, exclusão ou consulta de candidatos.
Atores: Coordenadoria de Eleições
Pré-condição: existir cadastro prévio de eleições. Cenário principal:
1. O sistema prepara uma lista de eleições cadastradas, que ainda não
tenham ocorrido a votação (início de votação em branco), exibindo para cada uma: objetivo, data da eleição, lista de candidatos cadastrados. Para cada candidato cadastrado, exibir: número e nome.
2. O usuário seleciona uma eleição.
3. O sistema habilita as seguintes opções para o usuário: 3.1. Inclusão de candidato
3.2. Alteração de candidato
3.2.1. Para alteração, o usuário deve pré-selecionar também o candidato.
3.3. Exclusão de candidato
3.3.1. Para exclusão, o usuário deve pré-selecionar também o candidato.
4. Para a opção de ―Inclusão‖ ou ―Alteração‖: 4.1. O usuário informa/edita:
4.1.1. número do candidato 4.1.2. nome do candidato 4.1.3. foto do candidato 5. Para a opção de ―Exclusão‖:
5.1. O sistema exibe os dados do item 4.1 desabilitados para edição. 5.2. O usuário confirma a exclusão da eleição.
6. O usuário confirma a operação.
6.1. O sistema atualiza o cadastro de candidatos. Cenários alternativos:
Validação do número do candidato
4.a. Se o usuário informar um número de candidato já cadastrado na eleição escolhida, exibir mensagem de erro informando a que candidato está associado e retornar ao passo 4.
Listagem 3. UC Iniciar Votação
Descrição: Este caso de uso tem por objetivo dar início à votação de uma eleição.
Atores: Mesário
Pré-condição: existir uma eleição cuja data é igual à data vigente e que ainda não tenha tido a votação iniciada.
Cenário principal:
1. O sistema busca a eleição cuja data é igual à data vigente. 2. O usuário confirma o início da votação.
2.1. O sistema atualiza o cadastro de eleições, registrando a data e hora atual no campo ―início da votação‖.
Cenários alternativos: Não se aplica
Listagem 4. UC Habilitar Eleitor
Descrição: Este caso de uso tem por objetivo validar o eleitor e liberar a urna para votação.
Atores: Mesário
Pré-condição: existir uma eleição cuja data é igual à data vigente e cujo início da votação já tenha sido preenchido.
Cenário principal:
1. O usuário informa a matrícula do eleitor.
1.1. O sistema busca o eleitor, exibindo o seu nome. 2. O usuário libera a urna para votação.
Cenários alternativos:
Validação da matrícula do eleitor
1.a. Se o usuário informar um número de matrícula que não exista no cadastro, exibir mensagem de erro e retornar ao passo 1.
1.b. Se o eleitor já tiver votado na eleição corrente, exibir mensagem de erro e retornar ao passo 1.
Permissão para liberar a urna
2.a. Se o eleitor anterior ainda não tiver finalizado a votação, exibir mensagem de erro e retornar ao passo 1.
Listagem 5. UC Votar
Descrição: Este caso de uso tem por objetivo permitir que o eleitor registre o seu voto.
Atores: Eleitor
Pré-condição: a urna estar liberada para votação. Receber a identificação da eleição e do eleitor habilitado para votação.
Cenário principal:
1. O sistema busca e exibe todos os candidatos associados à eleição identificada.
1.1. Para cada candidato, o sistema exibe: número do candidato, nome do candidato e foto do candidato.
2. O sistema habilita as opções ―Nulo‖ e ―Branco‖.
3. O usuário seleciona um dos candidatos ou uma das opções ―Nulo‖ ou ―Branco‖.
4. O usuário confirma a votação.
5. O sistema atualiza o cadastro de votação.
5.1. O sistema registra que o eleitor identificado já efetuou seu voto, sem associá-lo ao voto.
5.2. O sistema computa 1 voto para o candidato selecionado ou para as opções ―Nulo‖ ou ―Branco‖.
5.3. O sistema libera a urna. Cenários alternativos:
Permissão de correção da votação
4.a. O usuário pode solicitar a correção do seu voto, no momento de confirmar a votação. Nesse caso, o sistema deve retornar ao passo 3.
EXERCÍCIOS
01. No diagrama de sequências, o que representa a dimensão vertical? 02. No diagrama de sequências, como é chamada a linha que parte da
representação do objeto?
03. No diagrama de sequências, o que representa um grande X no final da linha de vida?
04. Como as mensagens são enviadas num diagrama de sequências? 05. O que representa a ativação num diagrama de sequências?
06. Indique quais elementos abaixo não aparecem em um diagrama de sequências:
objetos, mensagens, iteração, nós, condições, relacionamento de agregação, ator e estado.
07. Faça o diagrama de sequência para abertura de conta comum:
Inicialmente o Cliente solicita ao Funcionário a abertura de uma
conta, então o Banco faz uma consulta do cliente pelo seu CPF (Método), na classe Física, se o cliente se encontra cadastrado, a consulta retorna com os Dados do Cliente, se não o cadastro do cliente deverá ser realizado.
No cadastro do cliente (Física), deverá conter um método para
validar o CPF, evitando assim, o cadastro de clientes com CPF inexistente.
Após o cadastro do cliente o funcionário receberá uma resposta do
Sistema informando que o cliente está atualizado, da mesma forma que o funcionário comunica ao cliente que seu cadastro foi aprovado.
Ao receber a resposta do funcionário, o cliente deve informar valor
do depósito a ser feito e sua senha. Essa mensagem irá disparar um método para abertura de uma nova conta comum, que por sua vez, irá registrar esse histórico.
O Cliente deverá ser informado sobre o status de sua conta, ou seja,
que a abertura da conta foi concluída.
08. Faça o digrama de sequência para o encerramento de uma conta:
Neste caso o Cliente solicita ao Funcionário o encerramento de sua
conta, o Funcionário por sua vez deve verificar a conta, neste momento, é necessária a senha do cliente e em seguida se existe Saldo.
Se o Funcionário receber a resposta de que o saldo é positivo, deve
Assim como qualquer movimentação, havendo o saque deve-se
registrar o histórico referente ao Saque.
Após a confirmação do saque, deve ser disparado o método de
encerramento de Conta. Em seguida avisar ao cliente.
09. Diagrama referente a solicitação de Extrato de uma conta comum através de um caixa eletrônico.
10. Com base na especificação de caso de uso abaixo, criar um diagrama de sequências:
Criar Matrícula (CSU001)
Sumário: O aluno solicita do sistema, sua matrícula em uma determinada
disciplina. O sistema verifica se o aluno possui os pré-requisitos necessários e em caso afirmativo registra a matrícula.
Ator Primário: Aluno
Pré-condições: O aluno está logado no sistema. Fluxo Principal
1. O aluno solicita o formulário (tela) de matrícula. 2. O sistema solicita um código de disciplina.
3. O aluno fornece um código de disciplina.
4. O sistema exibe o nome completo (descrição) da disciplina.
5. O sistema verifica a grade do curso para conhecer os pré-requisitos para aquela disciplina.
6. O sistema verifica o histórico do aluno para determinar se ele possui os pré- requisitos necessários.
7. Se sim, o sistema registra a nova matrícula, emite uma mensagem de aceitação.
8. O sistema oferece alternativa de mais matrículas ou de encerramento. 10. O aluno seleciona encerramento e o caso de uso se encerra.
Fluxo Alternativo: O aluno seleciona mais matrículas e o caso de uso retorna ao passo 2 (pode acontecer no passo 8).
Fluxo de exceção: O aluno não possui os pré-requisitos (pode acontecer no passo 6).
1. O sistema reporta essa situação e retorna ao passo 8.
Pós-condições: As matrículas efetuadas tornam-se disponíveis aos coordenadores de curso para avaliação.
Regras de Negócio: Um aluno não pode se matricular em disciplinas que não tenha cursado seus pré-requisitos.
TAREFA 8 – DIAGRAMA DE SEQUENCIAS (1,0)
Uma locadora de veículos deseja um sistema para facilitar o atendimento a seus clientes. O processo de aluguel de carros atual é confuso e está gerando insatisfação entre os clientes. A locadora é formada basicamente pelos seus clientes e carros para aluguel. Os carros estão divididos em diversos tipos: popular, luxo e utilitário. As informações importantes sobre os carros a serem armazenadas são:
código (placa do carro), tipo, modelo, ano, cor, chassis, quilometragem e valor do aluguel (diária). Os funcionários serão responsáveis pe3lo cadastro dos clientes e dos carros adquiridos pela locadora, por efetuar o aluguel de um carro para o cliente e dar baixa no aluguel. Existem clientes especiais e clientes comuns. Os especiais possuem uma taxa de desconto e um valor de quilometragem extra para seus aluguéis. Qualquer cliente é identificado por RG, nome, CPF, telefone, endereço, contato.