Você está na página 1de 12

Projeto Locadora de Vdeo Passatempo

Documento de Especificao de Anlise


1. Introduo
Este documento contm a especificao de anlise para o projeto de informatizao da vdeo-locadora Passatempo. Esta atividade foi desenvolvida em duas etapas principais, a primeira focando na estrutura de informao do sistema (classes, atributos e associaes), a segunda em seu comportamento (operaes e trocas de mensagem entre objetos). Na seo 2, so apresentados os produtos da primeira etapa, a saber: Diagrama de Pacotes, Diagramas de Classes (um para cada pacote) e um Dicionrio de Dados. Na seo 3, so apresentados os produtos da segunda etapa: Diagramas de Transio de Estados (para as classes com comportamento varivel ao longo do tempo), Diagramas de Seqncia (agrupados por casos de uso) e as Descries da Operao, fechando o conjunto de produtos gerados na fase de anlise.

2. Modelo de Classes
A modelagem de classes envolve a identificao de classes, atributos, associaes e operaes, bem como o agrupamento de classes em subsistemas ou pacotes. A seguir, so apresentados os resultados da anlise, no que tange aos aspectos de informao basicamente. 2.1 Diagrama de Pacotes O propsito de um diagrama de pacotes prover uma viso de nvel mais alto do sistema, mostrando sua decomposio em subsistemas. O ponto de partida para essa decomposio o domnio do problema e, portanto, a decomposio utilizada no modelo de casos de uso foi transposta para o modelo de classes, como mostra a figura 2.1.

Atendimento Cliente

ControleAcervo

Figura 2.1 Diagrama de Pacotes O diagrama da figura 2.1 mostra a dependncia principal entre os subsistemas, indicando que o pacote AtendimentoCliente solicita servios do pacote ControleAcervo para poder cumprir suas responsabilidades. Na prxima seo, so apresentados os diagramas de classes para cada um desses pacotes.

2.2 Diagramas de Classes A figura 2.2 apresenta o Diagrama de Classes referente ao pacote ControleAcervo.
Titulo nome nomeOriginal ano ator [0..*] 0..n diretor [1..*] nacionalidade [1..*] categoria [1..*] sinopse obterReservaPendente() obterItemDisponivel() obterClasse() 1 0..n Item numSerie dtAquisicao estado obter() obterLocacaoPendente() obterTitulo() obterTipoItem() atribuirEstado() estahDisponivel() ehDoTipo() 0..n 1 TipoItem nome

Distribuidor razaoSocial 1 cnpj pessoaContato endereco telefone

0..n

Classe nome 1 valorLocacao prazoDevolucao obterValor() obterPrazo()

Figura 2.2 Diagrama de Classes do Pacote ControleAcervo. A figura 2.3 apresenta o Diagrama de Classes referente ao pacote AtendimentoCliente. As classes Titulo, Item e TipoItem oriundas do pacote ControleAcervo, mostram a integrao entre esses subsistemas.

Cheque banco agencia 0..n conta numero valor Locacao dtLocacao dtDevolucaoPrevista dtDevolucaoEfetiva valorCobrado multaCobrada 1 0..n estahPendente() calcularValorASerPago() existePagamento() calcularMulta() atribuirDtDevolucaoEfetiva() estahEmAtraso() criar() atribuirDtLocacao()

1 Pagamento data valor 1..n 0..2 1 Item (from Controle Acervo)

Cliente numInscricao nome dtNascimento sexo estahAtivo obter() estahEmDebito()

0..n

TipoItem (from Controle Acervo) 1..n

Socio cpf endereco 1 telefoneResidencial localTrabalho telefoneComercial telefoneCelular

0..n 0..n Dependente

Reserva dtReserva hrReserva dtComunicacao hrComunicacao ehDoTipo() estahPendente()

0..n 1 0..n

Titulo (from Controle Acervo)

Figura 2.3 Diagrama de Classes do Pacote AtendimentoCliente.

2.3 Dicionrio de Dados 2.3.1 Pacote ControleAcervo representa as classes nas quais ttulos podem ser classificados. Estabelece o valor a ser pago nas locaes de itens e o prazo de devoluo em dias.
nome: nome da classe (Ex.: lanamento, ouro, valorLocacao: Classe:

prata ou bronze)

valor em reais (R$) a ser cobrado na locao de itens de ttulos classificados na classe. prazo em dias para ser feita a devoluo de itens dos ttulos classificados na classe. responsveis pelo fornecimento de itens

prazoDevolucao:

Distribuidor: representa os distribuidores razaoSocial: razo social do distribuidor. cnpj: nmero no Cadastro pessoaContato:

dos ttulos. Nacional de Pessoas Jurdicas. (Opcional)

pessoa a ser chamada quando se desejar entrar em contato com o distribuidor. (Opcional) do distribuidor. (Opcional)

endereco: endereo

telefone: telefone do distribuidor. (Opcional) Item: representa os itens que podem ser locados da locadora. numSerie: nmero de srie do item. dtAquisicao: data de aquisio do item. (Opcional)

estado: registra os estados pelos quais pode passar um item, de acordo com o Diagrama de Estados apresentado na seo 3.
TipoItem: representa os tipos de itens com os quais trabalha a locadora. nome: nome do tipo do item. Titulo: representa os ttulos nome: nome do ttulo. ano: ano de lanamento do ttulo.

(Ex.: Fita VHS, DVD). dos filmes com os quais a locadora trabalha.

ator: atributo multivalorado que representa os atores que atuam em um ttulo.


categoria:

atributo multivalorado que representa as categorias nas quais o ttulo est classificado, tais como drama, terror, policial, etc. que dirigiram um ttulo.

diretor: atributo multivalorado que representa os diretores

nacionalidade: atributo multivalorado que representa os pases produtores do ttulo.


sinopse: descrio sucinta da histria do ttulo. nomeOriginal:

nome original do ttulo. Caso o ttulo seja nacional, deve ser o mesmo de nome.
4

2.3.2 Pacote AtendimentoCliente


Cheque: representa os cheques

usados para pagamentos.

banco: banco do cheque emitido. agncia: agncia onde est a conta do cheque.
conta: nmero da conta do cheque. numero: nmero do cheque. valor: valor em reais

(R$) do cheque.

Cliente: classe abstrata que representa os clientes da locadora (scios e seus dependentes). numInscricao: nmero de inscrio do cliente. nome: nome do cliente. dtNascimento: data de nascimento do cliente. sexo: sexo do cliente.

(Opcional)

S pode assumir os valores [Masculino, Feminino].

estahAtivo: indica se um cliente est ativo ou no. S pode assumir os valores [Verdadeiro, Falso].
Dependente: representa os clientes Locacao: representa as locaes dtLocacao: data da locao. dtDevolucaoPrevista: dtDevolucaoEfetiva:

da locadora que so dependentes.

de itens realizadas na locadora.

data de devoluo prevista do item. Essa data calculada pelo sistema, podendo ser alterada pelo usurio. Tem de ser maior que dtLocacao. data em que o item foi efetivamente devolvido. Deve ter valor nulo, enquanto o item no tiver sido devolvido e um valor maior ou igual a dtLocacao, quando o item tiver sido efetivamente devolvido. valor cobrado em reais (R$) pela locao. calculado pelo sistema com base na classe do ttulo do item, podendo ser alterado pelo usurio. valor cobrado de multa em reais (R$), devido a um atraso na devoluo do item. calculado pelo sistema com base no nmero de dias em atraso, podendo ser alterado pelo usurio. Se dtDevolucaoEfetiva <= dtDevolucaoPrevista, o valor da multa tem de ser zero. Enquanto o item no tiver sido efetivamente devolvido, tem de ter valor nulo. para quitar locaes.

valorCobrado:

multaCobrada:

Pagamento: representa os pagamentos efetuados data: data do pagamento. valor:

valor do pagamento em reais (R$). calculado pelo sistema com base nas locaes e multas a serem quitadas.

Reserva: representa as reservas de ttulos realizadas dtReserva: data da reserva. hrReserva: hora da reserva. dtComunicacao:

na locadora.

data em que o cliente foi comunicado que a reserva j pode ser atendida. Deve ter valor nulo, enquanto a disponibilidade de um item para a reserva ainda no foi comunicada ao cliente, ou deve assumir um valor maior ou igual a dtReserva. hora em que o cliente foi comunicado que a reserva j pode ser atendida. Deve ter valor nulo, quando a disponibilidade de uma fita para a reserva ainda no foi comunicada ao cliente, ou deve assumir um valor maior que hrReserva, quando as datas da reserva e da comunicao forem iguais. da locadora que so scios. de Pessoas Fsicas.

hrComunicacao:

Socio: representa os clientes cpf: nmero no Cadastro endereco: endereo

do scio. (Opcional)

telefoneResidencial: telefone residencial do scio. (Opcional) localTrabalho: local onde o scio trabalha.

telefoneComercial: telefone comercial do scio. (Opcional) telefoneCelular: telefone celular

do scio. (Opcional)

3. Modelo Comportamental
A modelagem do comportamento dos objetos visa apoiar a identificao de atributos e operaes de classes. Nesta seo, so apresentados os Diagramas de Transio de Estados, os Diagramas de Seqncia e as descries das operaes das classes. Os resultados desta atividade j foram espelhados nos Diagramas de Classes mostrados na seo anterior.

3.1 Diagramas de Grficos de Estados


3.1.1 Classe Item do Pacote ControleAcervo A figura 3.1 mostra o diagrama de estados da classe Item. Os eventos mostrados dizem respeito realizao dos casos de uso ou aes dos mesmos, tal como Efetuar Nova Locao. Esse diagrama deu origem a uma atributo estado na classe Item, que indica o estado de um objeto dessa classe.

Cancelar Reserva (automaticamente ou no) [ existeReservaPendente [ existeReservaPendente do ttulo ] do ttulo ]

[ no existeReservaPendente do ttulo ]

Reservado

Cancelar Reserva (automaticamente ou no) [ no existeReservaPendente do ttulo ]

Disponvel

Efetuar Devoluo [ existeReservaPendente do ttulo ]

Efetuar Devolucao [ no existeReservaPendente do ttulo ]

Locado Efetuar Locao Efetuar Locacao

Efetuar Devoluo[item Inutilizado]

[ itemInutilizado ]

Inutilizado

[ itemInutilizado ]

Figura 3.1 Diagrama de Estados da Classe Fita do Pacote ControleAcervo. 3.1.2 Classe Locacao do Pacote AtendimentoCliente A figura 3.2 mostra o diagrama de estados da classe Locacao. Os eventos mostrados dizem respeito realizao dos casos de uso ou aes dos mesmos, tal como Efetuar Devoluo. Esse diagrama no deu origem a um atributo estado na classe Locacao, uma vez que todos os estados podem ser computados. O estado emAtraso, por exemplo, decorre da data corrente (dtCorrente) ser maior do que a data de devoluo prevista ( dtDevolucaoPrevista). Esta comparao foi mapeada na operao emAtraso na classe Locacao. Essa operao s far o teste entre as datas se o objeto locao no estiver encerrada, ou seja, se no tiver uma data de devoluo efetiva (dtDevolucaoEfetiva) definida.

[ ex ist e P agam ento ]

[ no ex is te P agam ento ]

P aga

No P aga

[ dt C orr ente > dtD evoluc aoP r evi s ta ]

em A tras o E fetuar D evolu o E fetuar D evolu o Efet uar D evolu o E nc errada

Figura 3.2 Diagrama de Estados da Classe Locacao do Pacote AtendimentoCliente.

3.2 Diagramas de Seqncia


A seguir, so apresentados os Diagramas de Seqncia construdos neste projeto. Apenas os cursos normais dos casos de uso / fluxos de eventos dos casos de uso foram considerados para a elaborao desses diagramas e, portanto, na atividade de Projeto Detalhado das Operaes (Projeto de Objetos) da fase de Projeto, os cursos alternativos devem ser incorporados.

Caso de Uso: Efetuar Locao / Cenrio: Efetuar Nova Locao

Caso de Uso: Efetuar Locao / Fluxo de Eventos: Efetuar Nova Locao

: Funcionrio

: Aplicacao

: Cliente

clienteLocacao : Cliente

locacoesCliente : tituloDesejado : Locacao Titulo

itensTitulo : Item

classeTitulo : Classe

novaLocacao : Locacao

itemDisponivel : Item

efetuarNovaLocacao (numInscricao, tituloDesejado, tipoItemDesejado) obter (numInscricao) clienteLocacao estahEmDebito( ) * estahEmAtraso( ) [clienteLocacao no est em Dbito] obterItemDisponivel (tipoItem)

* estahDisponivel( )

[item disponvel] ehDoTipo (tipoItem) itemDisponivel obterClasse( ) classeTitulo obterValor( ) obterPrazo( ) valor, dtDevolucaoPrevista alterarValorDtDevolucao (valor, dtDevolucaoPrevista) criar (clienteLocacao, itemDisponivel, valor, dtDevolucaoPrevista) atribuirDtLocacao (dtCorrente) se cliente desejar pagar, realizar caso de uso "Efetuar Pagamento" atribuirEstado ("locado")

Caso de Uso: Efetuar Devoluo

: Funcionrio

: Aplicacao

: Item

itemDevolvido : Item

locacoesItem : Locacao

locacaoPendente : Locacao

tituloItem : Titulo

reservasItem : Reserva

efetuarDevolucao(numSerie) obter (numSerie) itemDevolvido obterLocacaoPendente( ) locacaoPendente calcularValorASerPago( ) existePagamento( ) [dtCorrente > dtDevolucaoPrevista] calcularMulta( ) valorASerPago se valorASerPago > 0, realizar caso de uso "Efetuar Pagamento" atribuirDtDevolucaoEfetiva (dtCorrente) obterTipoItem( ) tipoItem obterTitulo( ) tituloItem obterReservaPendente (tipoItem) * ehDoTipo (tipoItem) * estahPendente( ) reservaPendente [no existe reservaPendente] atribuirEstado ("disponivel") * estahPendente( )

10

3.3 Descrio das Operaes


3.3.1 Pacote ControleAcervo
Classe: obterValor: informa o valor de Locao

estipulado pela classe. estipulado pela classe.

obterPrazo: informa o prazo para devoluo Item: estahDisponivel: Boolean

Retorna verdadeiro se o estado do item for disponvel, ou falso em caso contrrio. Retorna verdadeiro se o tipo do item for igual a tipoItem, ou falso em caso contrrio. Retorna, caso exista, a locao pendente do item.

ehDoTipo (tipoItem: TipoItem): Boolean

obterLocacaoPendente: Locacao obterTitulo: Titulo

Retorna o ttulo do item.


obterTipoItem: TipoItem

Retorna o tipo de item do item.


atribuirEstado(novoEstado: String) Atribui o valor de novoEstado

ao atributo estado do item. novoEstado s pode assumir um dos valores mostrados no diagrama de grfico de estados da classe Item, mostrado na figura 3.1. Retorna o item que tem o nmero de srie informado.

obter(numSerie: Integer): Item Titulo: obterItemDisponivel (tipoItem: TipoItem): Item

Retorna, caso exista, um item disponvel do ttulo, que seja do tipo item especificado.
obterClasse: Classe

Retorna a classe do ttulo. Retorna a reserva pendente mais antiga do ttulo.

obterReservaPendente: Reserva

2.3.2 Pacote AtendimentoCliente


Cliente: obter(numInscricaoCliente): Cliente

Retorna o objeto cliente cujo atributo numInscricao = numInscricaoCliente.


estahEmDebito: Boolean

Retorna verdadeiro se o cliente possuir alguma locao em atraso, ou falso em caso contrrio.
11

Locacao: criar(clienteLocacao: Cliente, itemLocacao: Item, dtDevolucaoPrevista: Data, valor: Real) Cria um objeto locao, relacionado aos objetos cliente clienteLocacao e item itemLocacao. Neste momento, so informados, ainda, a data de devoluo prevista e o valor da locao. O item locado colocado no estado Locado. atribuirDtDevolucaoEfetiva(data: Data) Atribui o valor de data ao atributo dtDevolucaoEfetiva da locao. atribuirDtLocacao(data: Data) Atribui o valor de data ao atributo dtLocacao estahEmAtraso: Boolean estahPendente: Boolean

da locao.

Retorna verdadeiro se a locao estiver em atraso, ou falso em caso contrrio. Retorna verdadeiro se a locao estiver pendente, isto , se ela no possuir uma data de devoluo efetiva (dtDevolucaoEfetiva = null), ou falso em caso contrrio. Com base nas datas de devoluo prevista e efetiva e no valor da locao, calcula a multa devida: (multa = (dtDevolucaoEfetiva dtDevolucaoPrevista) *
valorCobrado).

calcularMulta: Real

calcularValorASerPago: Real

Com base no valor ainda no pago da locao e o valor devido multa, calcula o valor a ser pago no ato da devoluo. (valorASerPago = multa + valorCobrado, se no existePagamento, ou valorASerPago = multa, se existePagamento).
existePagamento: Boolean

Retorna verdadeiro se a locao j teve um pagamento efetuado para ela, ou falso em caso contrrio.

Reserva: estahPendente: Boolean

Retorna verdadeiro se a reserva est pendente ou falso em caso contrrio. Retorna verdadeiro se a reserva do tipo item informado ou falso em caso contrrio.

ehDoTipo (tipoItem: TipoItem): Boolean

12