1. Projeto Exemplo LOCADORA
Table of Contents
1. Propósito
2. Escopo
3. Narrativas de Uso
4. Stakeholders e Interesses
5. Acionadores
6. Atores e Objetivos
7. Casos de Uso de Negócio
8. Casos de Uso do Sistema
9. Links
Esta página contém a documentação do
projeto exemplo LOCADORA feito na
ferramenta SpeedCASE, além disso
exemplificamos aqui o uso do SVN para
controle de versão e o TRAC como front-
end web, ambas ferramentas também são
utilizadas pela Tecnospeed em seus
serviços de consultoria de
desenvolvimento de software.
A implementação do projeto da locadora
feito no SpeedCASE pode ser baixado na
nossa página de Downloads.
Para entender como aconteceu a execução
do projeto, desde a fase inicial até termos
o produto acabado você pode visitar a
página Execução do Projeto.
2. Visão Geral
Este documento tem o objetivo de prover
uma descrição da organização do projeto
bem como seu propósito. Além disso
abordará a forma como o sistema aqui
descrito será construído.
Propósito
Este projeto procura exemplificar a
aplicação da ferramenta SpeedCASE no
processo de desenvolvimento de software,
neste caso em particular em um pequeno
software para controle de vídeo-locadoras.
O objetivo principal é criar um projeto
exemplo que possa servir de referência a
todos os usuários da ferramenta
SpeedCASE sejam eles iniciantes ou
usuários avançados, por meio de um
exemplo prático que aborde de maneira
clara a maior gama de recursos da
ferramenta possível.
Escopo
Por se tratar de um demonstrativo frisa-se
que não está no escopo deste projeto
produzir um software de nível comercial e
nem se dará suporte qualquer a este tipo
3. de iniciativa. Contudo esta prática não
será vedada aos nossos usuários, ou seja,
se for de sua vontade e total
responsabilidade o usuário poderá colocar
o produto deste projeto no mercado.
Na prática, o sistema tem a intenção de
informatizar os processos do negócio de
locação de filmes. Para tanto controlará
empréstimos de filmes associando-os a
clientes previamente cadastrados para
que, com base nesta informação, possa
prover relatórios sobre comissões dos
balconistas que locaram os filmes aos
clientes, bem como sobre a saúde
financeira do negócio. Some a isso a
necessidade do gerente de saber detalhes
sobre as contas a pagar e a receber que a
empresa tenha a qualquer período, isto
implica também no desenvolvimento de
um fluxo de caixa.
Glossário
• SpeedCASE: Ferramenta de
produtividade para produção de
softwares empregrada neste projeto.
• Stakeholder: Parte interessada no
comportamento do sistema.
4. • Usuário : Balconista ou Proprietário da
Locadora.
• Dados do Funcionário
• Dados de Cliente
• Dados de Locação
• Dados de Filme
• Dados de Categorias de Filmes
• Dados de Conta
• Dados de Lançamento
• Dados do Fornecedor
• Dados de Gênero
• Dados de Mídia
Casos de Uso
Neste projeto utilizamos casos de uso da
maneira proposta por Alistair Cockburn
Narrativas de Uso
• Passando na Locadora
• Devolvendo Filmes em Atraso
• Adquirindo Novos Filmes
5. Stakeholders e Interesses
Cliente:
1. Locar filmes e devolve-los no prazo
adequado evitando possíveis multas.
Fornecedor:
1. Fornecer filmes a locadora e ser
pago por eles.
Proprietáro:
1. Emprestar filmes ao cliente e
cobrar quantia justa pelo empréstimo.
2. Pagar comissão ao balconista
3. Comprar filmes
Balconista:
1. Receber comissão.
2. Emprestar filme ao cliente.
3. Fazer pedido de filmes
4. Receber filmes do pedido.
5. Receber devolução de empréstimos
de filmes
6. Calcular valor a receber pela
locação, incluindo possíveis multas
7. Receber valor referente a locação
6. Acionadores
Acionadores identificados
1. Cliente entra na locadora para
alugar filmes.
2. Cliente chega ao balcão para
cadastrar-se.
3. Cliente chega ao balcão para
emprestar filmes.
4. Cliente chega ao balcão para
devolver filmes.
5. Cliente chega ao balcão para pagar
dívidas.
6. Proprietário entrega ao balconista
lista de compras.
7. Proprietário resolve comprar filmes.
Atores e Objetivos
Tabela de Atores e seus Objetivos
=================================
=====
======================================================================
=
Ator Objetivo
-------
----------------------------------------------------------------------
-
Cliente Locar Filme, Devolver Filme, Pagar Dívidas, Cadastrar-se.
Fornecedor Cadastrar-se
Balconista Locar Filme, Receber Comissão, Receber Locação, Cadastrar
Filmes Novos.
Proprietário Pagar Comissão, Pagar Fornecedor, Comprar Filme.
7. Casos de Uso de Negócio
1.Comercializar Filmes
1.1.Comprar Filme
1.1.1.Fazer Pedido 1.1.2.Receber Pedido
1.2.Locar Filme
1.2.1.Emprestar Filme 1.2.2.Devolver
Filme 1.2.3Cadastrar Cliente
1.3.Controlar Finanças
1.3.1.Registrar Contas a
Pagar 1.3.2.Registrar Contas a
Receber 1.3.3.Pagar Contas 1.3.4.Receber
Contas
Casos de Uso do Sistema
1.Comercializar Filmes
1.1.Comprar Filme
1.1.1.Cadastrar
Fornecedor 1.1.2.Cadastrar
Filme 1.1.3.Cadastrar
Mídia 1.1.4.Cadastrar Gênero
1.2Locar Filme
8. 1.2.1Cadastrar Cliente 1.2.2.Controlar
Locações 1.2.3.Controlar Devoluções
1.3.Controlar Finanças
1.3.1.Cadastrar Conta 1.3.2.Liquidar
Conta 1.3.3.Visualizar Balanço
1.4.Cadastrar Balconista
Regras de Negócio
• Lançamento da Locação
• Calculo do Valor da Locação
• Gerar ID da Conta
• Calcular Total da Conta
• Associar Conta Lançamento
• Associar Conta Superior
• Receber Multa de Locação
• Calculo do Valor da Multa
Diagramas
• Interação entre os módulos
• Módulo Básico
• Módulo de Empréstimos
9. Plano de releases
Pontuação dos Casos de Uso (em UDs
- Unidades de Desenvolvimento)
As unidades de desenvolvimentos indicam
a suposta complexidade de
desenvolvimento de um Caso de Uso
• Cadastrar Fornecedor(1)
• Cadastrar Filme (1)
• Cadastrar Mídia(1)
• Cadastrar Gênero(1)
• Cadastrar Cliente(1)
• Controlar Locações(3)
• Controlar Devoluções(3)
• Cadastrar Conta(2)
• Liquidar Conta(1)
• Visualizar Balanço(1)
• Cadastrar Balconista(1)
Separação dos Casos de Uso em
Releases
A cada iteração um programador pode
comprometer-se com 4 UDs (isso pode
variar de equipe para equipe
10. • 1ª Iteração
• Programador #1
o Cadastrar Fornecedor 1
o Cadastrar Filme 1
o Cadastrar Mídia 1
o Cadastrar Gênero 1
• Programador #2
o Cadastrar Cliente 1
o Controlar Locações 3
*2ª Iteração
• Programador #2
o Controlar Devoluções 3
o Cadastrar Balconista 1
• Programador #1
o Cadastrar Conta 2
o Liquidar Conta 1
o Visualizar Balanço 1
Tecnologia Empregada
*Ferramenta de
produtividade #glossarioSpeedCASE? *Tur
bo Delphi Explorer
11. Planos Futuros
*Automatizar controle de Promoções.
*Automatizar controle de Descontos.
*Dúvida: existe algum órgão que
inspeciona o estoque da locadora?
Outros Requisitos
Contas a pagar e a receber com Fluxo de
caixa.
Registrar todas as contas a pagar e a
receber da locadora, o registro das
contas deverá conter:
* Data Lançamento (Cadastro); *
Identificação Documento (Informado
quando “a pagar” e automático quando “a
receber” – código do empréstimo); * Data
Vencimento (Previsão de
pagamento/Recebimento); * Valor
Documento (valor do empréstimo); * Data
Liquidação (pagamento ou recebimento);
* Valor Liquidação (pago ou recebido); *
Conta (classificação do documento,
cadastro de contas); * Pessoa (Cliente ou
Fornecedor, utilizar cadastro unificado de
pessoas) * Saldo (Valor Documento –
Valor Liquidação)
12. Os cadastros de Clientes e
Fornecedores podem ser feito na
Classe Pessoa;
* Código; * Nome; * Conta Sintética
(Relacionamento Cíclico);
O Cadastro de Contas é utilizado para
classificar os documentos agrupando-
os em tipos comuns.
* Classificação (1; 1.1; 1.1.01) *
Descrição Conta;
As seguintes consultas deverão ser
realizadas:
* Listar o movimento do caixa diariamente
(Entrada e Saídas) para apurar o saldo do
dia (somente documentos liquidados);
* Listar os documentos a vencer (Entrada
e Saídas) demonstrando o fluxo de caixa
previsto para o período desejado.
(somente documentos abertos, agrupados
por contas);
* Listar Documentos/Pessoas com atraso;
Apêndices
A - Modelos de Documentos
13. B - Como montar uma Videolocadora?
Links
• TracGuide -- Built-in Documentation
• The Trac project -- Trac Open Source
Project
• Trac FAQ -- Frequently Asked
Questions
• TracSupport -- Trac Support
For a complete list of local wiki pages,
see TitleIndex.
14. asos de Uso
Diagrama de Casos de Uso
Objetivo
O Diagrama de Casos de Uso tem o objetivo de auxiliar a comunicação entre os analistas e o
cliente.
Um diagrama de Caso de Uso descreve um cenário que mostra as funcionalidades do sistema
do ponto de vista do usuário.
O cliente deve ver no diagrama de Casos de Uso as principais funcionalidades de seu
sistema.
Notação
O diagrama de Caso de Uso é representado por:
• atores;
• casos de uso;
• relacionamentos entre estes elementos.
Estes relacionamentos podem ser:
• associações entre atores e casos de uso;
• generalizações entre os atores;
• generalizações, extends e includes entre os casos de uso.
casos de uso podem opcionalmente estar envolvidos por um retângulo que representa os
limites do sistema.
Em maiores detalhes:
• Atores
Um ator é representado por um boneco e um rótulo
com o nome do ator. Um ator é um usuário do
sistema, que pode ser um usuário humano ou um
outro sistema computacional.
• Caso de uso
Um caso de uso é representado por uma elipse e um
rótulo com o nome do caso de uso. Um caso de
usodefine uma grande função do sistema. A
implicação é que uma função pode ser estruturada
em outras funções e, portanto, um caso de uso pode
ser estruturado.
• Relacionamentos
Ajudam a descrever casos de uso
o Entre um ator e um caso de uso
Associação
Define uma funcionalidade do
sistema do ponto de vista do
usuário.
o Entre atores
15. Generalização
- Os casos de uso de B são
tambémcasos de uso de A
- A tem seus próprios casos de uso
o Entre casos de uso
Include
Um relacionamento include de um caso de uso A para um caso de uso B indica que B é
essencial para o comportamento de A. Pode ser dito também que B is_part_of A.
Extend
Um relacionamento extend de um caso de uso B para um caso de uso A indica que o caso de
uso B pode ser acrescentado para descrever o comportamento de A (não é essencial). A
extensão é inserida em um ponto de extensão do caso de uso A.
Ponto de extensão em um caso de uso é uma indicação de que outros casos de uso poderão
ser adicionados a ele. Quando o caso de uso for invocado, ele verificará se suas extensões
devem ou não serem invocadas.
Você entendeu?! Provavelmente, não. É que extend é unanimemente considerado um
conceito obscuro.
Vamos a novas explicações.
Quando se especifica B extends A, a semântica é:
Dois casos de uso são definidos: A e A extended by B;
B é uma variação de A. Contém eventos adicionais, para certas condições;
Tem que ser especificado onde B é inserido em A.
Generalização ou Especialização (é_um)
caso de uso B é_um caso de uso A (A é uma generalização de B, ou B é uma especialização
de A).
Um relacionamento entre um caso de uso genérico para um mais específico, que herda todas
as características de seu pai.
16. Sistema
• Limites do sistema: representado por um retângulo envolvendo oscasos de
uso que compõem o sistema.
• Nome do sistema: Localizado dentro do retângulo.
Exemplo 1
Exemplo 2