j. Código
fonte:
O código fonte em Java, Delphi e Visual
Basic para as classes tabela Produto, Contrato
e Receita e para os controladores CtrlCadastrarContrato
e CtrlObterReceitas está disponível
para download em http://equipe.nce.ufrj.br/jonas/conceito
Observe neste código:
· a utilização
das classes controladoras. As classes controladoras
manipulam os objetos de negócio (as classes
tabela) e são o lugar ideal para tratar
as regras de negócio (por exemplo, o
valor de um contrato não pode ser inferior
a R$ 1.000,00). A utilização das
classes controladoras aumenta a probabilidade
de reutilização dos objetos de
negócio.
· que todo o código
SQL é encapsulado nas classes tabela.
· nenhuma classe tabela
faz JOINS de tabelas. A junção
de informações provenientes de
duas ou mais tabelas é feita em alto
nível, através dos métodos
disponíveis na interface das classes.
Esta característica facilita a manutenção
do software: uma alteração no
esquema de uma tabela tem impacto somente na
classe tabela associada.
6.2 Registrar Pagamento de Mensalidades
a. Descrição
do Negócio
Em uma academia, a Atendente registra o pagamento
de um aluno.
Inicialmente o sistema lista os alunos ativos,
isto é, aqueles que tem um atraso máximo
de 3 mensalidades.
A partir da lista dos alunos ativos a Atendente
seleciona um aluno.
O sistema mostra as mensalidades em atraso para
o aluno escolhido e calcula as multas a serem
aplicadas.
A atendente registra o pagamento do mês
mais antigo ainda em aberto.
b. Modelo Conceitual
c. Modelo de Casos de Uso
CSU05 – Registrar Pagamentos
Sumário: Este caso de
uso permite ao Recepcionista lançar o
pagamento de mensalidade feita pelo aluno e
emitir um comprovante
Ator Primário: Recepcionista
Pré-Condição:
Ator Recepcionista conectado ao sistema e autenticado
Fluxo Principal:
1. O caso de uso tem início quando o
Ator Recepcionista decide lançar um novo
pagamento de um aluno.
2. O sistema exibe a lista de matrículas
dos alunos cadastrados e ativos
3. O Ator Recepcionista seleciona uma matrícula
4. O sistema exibe os dados: meses em aberto
e valor a pagar (já incluídos
multas ou descontos) do aluno selecionado
5. O Ator Recepcionista seleciona o mês
a pagar
6. O sistema exibe os dados do pagamento: valor,
desconto ou multa, total a receber e pede a
confirmação do ator Recepcionista
7. O Ator Recepcionista confirma os dados do
pagamento
8. O sistema confirma o pagamento e exibe o
comprovante do mesmo com opção
para impressão.
9. O caso de uso se encerra
d. Diagrama Lógico do
Banco de Dados
e. Diagrama Físico do
Banco de Dados
CREATE TABLE PacoteAtividades (
ID_Pacote real
NOT NULL,
valor real
NULL,
PRIMARY KEY (ID_Pacote)
)
CREATE TABLE Aluno (
matricula real
NOT NULL,
ID_Pacote real
NULL,
nome varchar(20)
NULL,
PRIMARY KEY (matricula),
FOREIGN KEY (ID_Pacote)
REFERENCES
PacoteAtividades
)
CREATE TABLE Pagamento (
matricula real
NOT NULL,
dtReferencia datetime
NOT NULL,
dtPagamento datetime
NULL,
valor real
NULL,
PRIMARY KEY (matricula, dtReferencia),
FOREIGN KEY (matricula)
REFERENCES
Aluno
)
f. Diagrama de Seqüência
g. Diagrama de Classes
h. Código fonte:
O código fonte em Java e Visual Basic
para as classes tabela Pagamento, PacoteAtividades
e Aluno e para o controlador CtrlRegistrarPagamento
está disponível para download
em http://equipe.nce.ufrj.br/jonas/conceito
7. Conclusões
Este artigo apresenta uma alternativa para a
organização da lógica de
domínio em aplicações OO
simples, que não requeiram soluções
sofisticadas para gerenciar a complexidade do
modelo. A solução proposta permite
encapsular dados e comportamento em objetos
e, ao mesmo tempo, tirar proveito do poder de
um banco de dados relacional. Para o leitor
interessado em se aprofundar no assunto, o NCE/UFRJ
oferece vários cursos na área.
Maiores detalhes em http://www.nce.ufrj.br.
8. Referências
Martin Fowler, Patterns of Enterprise Application
Architecture, Addison Wesley, 2003.
Erich Gamma, Richard Helm, Ralph Johnson, John
Vlissides, Design Patterns, Addison-Wesley Professional,
1995.
|