Upload
eliza-de-andrade-prada
View
220
Download
0
Embed Size (px)
Citation preview
Tópicos AvançadosTópicos Avançados em Interfaceem Interface
Equipe
Ivanildo José de Sousa Aquino Júnior ([email protected])
Milton Burgos Josué Neto ([email protected])
Roteiro
• Introdução• Casos de uso escolhidos• Fluxos de eventos• Diagramas de Seqüência• Classes de Análise (VOPC)• Arquitetura• Cápsulas• Subsistemas
Introdução
• Sistema de gerenciamento de aprendizado
• Ferramentas síncronas e assíncronas• Interface WEB
Caso de uso: Matricular Aluno em Curso
Efetuar Login
Solicitar Nova Senha
Cadastrar
Anônimo
Sistema Financeiro
Matricular em Curso
<<include>>
Fluxo de Eventos: Matricular Aluno em Curso
[An] CDU-04
Nome: Matricular em Curso
Atores: Anônimo
Prioridade: Essencial
Requisitos associados: [An] RF-04
Entradas e pré-condições: O usuário deve estar cadastrado no sistema.
Saídas e pós-condições: O usuário é matriculado no curso.
Fluxos de eventos
Fluxo principal: 1. I nclude (Cadastrar); 2. O usuário informa o curso que deseja se matricular e o valor do curso; 3. O usuário confirma a solicitação de matrícula no curso; 4. O sistema procura o usuário na base de dados através de seu CPF; 5. O sistema procura o curso que o usuário deseja se matricular na base de dados. 6. O sistema gera e retorna o número de matrícula do usuário no curso. 7. O sistema matricula o usuário no curso. 8. O sistema transmite o valor do curso para o sistema financeiro.
Fluxos Alternativos: 1. O usuário pressiona o botão cancelar
Este fluxo ocorre quando o usuário clica no botão cancelar até o passo 2. O caso de uso termina.
Caso de uso: Alocar Administrador
Atualizar Usuário
Efetuar Login
(from Anônimo)
Alocar Administrador
Inserir Usuário
Remover Usuário
Desalocar Administrador
Administrador
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
Fluxo de Eventos: Alocar Administrador
[Ad] CDU-16
Nome: Alocar Administrador
Atores: Administrador
Prioridade: Essencial
Requisitos associados: [Ad] RF-16
Entradas e pré-condições: O administrador deve ter efetuado o login no sistema
Saídas e pós-condições: O usuário é cadastrado como administrador do sistema.
Fluxos de eventos
Fluxo principal: 1. I nclude (Efetuar Login); 2. O administrador informa o CPF do novo administrador; 3. O administrador confirma a solicitação de alocação de um novo administrador; 3. O sistema procura o usuário na base de dados através de seu CPF; 4. O sistema atribui permissões de administrador ao usuário e informa o sucesso na realização da atividade.
Fluxos Alternativos: 1. Usuário não cadastrado
No passo 3, caso o sistema não retorne nenhum usuário cadastrado na base de dados, o administrador preenche os dados de um novo cadastro para o usuário. O sistema cadastra o usuário na base de dados. O caso de uso retorna ao passo 4. 2. CPF não preenchido
No passo 2, caso o CPF não seja preenchido, uma mensagem de erro é exibida para o usuário. O caso de uso retorna ao passo 2. 3. CPF inválido
No passo 2, caso o CPF informado pelo usuário não seja válido, o sistema exibe uma mensagem de erro para o usuário. O caso de uso retorna ao passo 2. 4. O administrador pressiona o botão cancelar
Este fluxo ocorre quando o administrador clica no botão cancelar no passo 2. O caso de uso termina.
Caso de uso: Procurar Documentos
Aluno
(f rom Actors)
Efetuar Login
(from Anônimo)
Entrar em Grupo
<<include>>
Matricular em Turma
<<include>>
Solicitar Trancamento de Matrícula<<include>>
Sair do Grupo
<<include>>
Realizar Avaliação
<<include>>
Procurar Documento
Fluxo de Eventos: Procurar Documentos
[Al] CDU-12
Nome: Procurar Documento
Atores: Aluno
Prioridade: Desejável
Requisitos associados: [Al] RF-12
Entradas e pré-condições: O aluno deve ter efetuado o login no sistema
Saídas e pós-condições: O documento é baixado da base de dados do servidor.
Fluxos de eventos Fluxo principal: 1. I nclude (Efetuar Login);
2. O aluno informa as palavras-chave para a procura dos documentos; 3. O aluno confirma a busca pelos documentos; 4. O sistema procura a lista de servidores onde as bases de dados do sistema está instalado; 5. O sistema acessa os servidores; 6. O sistema procura os documentos nas bases de dados dos servidores; 7. O sistema lista os documentos encontrados nas bases de dados; 8. O aluno seleciona o documento a ser baixado; 9. O sistema envia o documento da base de dados do servidor para o aluno; 10. O aluno confirma a recepção do documento.
Fluxos Alternativos: 1. O aluno pressiona o botão cancelar
Este fluxo ocorre quando o aluno clica no botão cancelar até o passo 10. O caso de uso termina.
Diagrama de Seqüência: Matricular Aluno em Curso
: Aluno : TelaMatricularAluno : ControladorMatricularAluno
: CadastroUsuarios : CadastroCursos : MatriculaCurso : Sistema Financeiro :
CadastroMatriculasCurso
matricularAluno(cpf, cursoId, valor)
matricular(cpf, curso_id, valor)
usuario = procurar(cpf,)
curso = procurar(cursoId)
gerarContaAReceber(usuario, valor)
matricula = criar(curso, usuario)
inserir(matricula)
Diagrama de Seqüência: Alocar Administrador
: Administrador : TelaAlocarAdministrador : ControladorAlocacaoA...
: CadastroUsuarios : CadastroAlocacaoAdministradores : AlocacaoAdministrador
alocarAdministrador(cpf)
alocarAdministrador(cpf)
usuario = procurar(cpf)
inserir(adm)
existe(usuario)
adm = criar(usuario)
Diagrama de Sequência: Procurar Documentos
: Aluno : TelaProcurarDocumento : ControladorProcurar...
: CadastroDocumentos : ISubsiste...
: CadastroServidores : Servidor : CadastroDocumentos
procurarDocumento(palavraChave)
procurarDocumento(palavraChave)
documentosLocais = procurar(palavraChave)
exibirListaDocumentos()
baixarArquivo(documento, servidor)
baixarArquivo(documento, servidor)
servidores = procurarServidores()
servidorAtual = acessarServidor(servidor)
documentos = procurarDocumentos(palavraChave)
procurarDocumentos(palavraChave)
baixarArquivo( )
Classes de Análise: Matricular aluno em curso
CadastroMatriculasCurso
inserir()
(f rom Matricula)
<<entity collection>>
Curso(f rom Curso)
<<entity>>
MatriculaCurso
cursousuario
(f rom Matricula)
<<entity>>
CadastroCursos
procurar()
(f rom Curso)
<<entity collection>>
0..n0..n
ISubSistemaFinanceiro
gerarContaReceber()
(f rom SubSistemaFinanceiro)
<<Interface>>
0..n0..n
TelaMatricularAluno
matricularAluno()
(f rom GUI)
<<boundary>>
Usuario
loginsenhanomecpf
(f rom Usuario)
<<entity>>
CadastroUsuarios
procurar()inserir()
(f rom Usuario)
<<entity collection>>
0..n0..n
ControladorMatricularAluno
matricularAluno()
(f rom Controladores)
<<control>>
1
1
1
1
1
1
1
1
1 11 1
1
0..n
1
0..n
11 11
Classes de Análise: Alocar Administrador
ControladorAlocacaoAdministrador
alocarAdministrador()procurarUsuario()
(f rom Controladores)
<<control>>
AlocacaoAdministrador
usuario(f rom Alocacao)
<<entity>>
Usuario
loginsenhanomecpf
(f rom Usuario)
<<entity>>
CadastroAlocacaoAdministradores(f rom Alocacao)
<<entity collection>>
0..n0..n
CadastroUsuarios
procurar()inserir()
(f rom Usuario)
<<entity collection>>
0..n0..n
1
1
1
1
1
1
1
1
TelaAlocarAdministrador(f rom GUI)
<<boundary>>
1
0..n
1
0..n
Classes de Análise: Procurar documentos
Servidor
documentos
procurarDocumento()baixarArquivo()
(f rom Serv idor)
<<entity>>
Documento(f rom Documento)
<<entity>>
ISubsistemaComunicacao
acessarServidor()
(f rom SubSistemaComunicacao)
<<Interface>>
CadastroServidores
procurar()
(f rom Serv idor)
<<entity collection>>
0..n0..n
CadastroDocumentos
procurarDocumento()
(f rom Documento)
<<entity collection>>
0..n0..n
1
1
1
1
ControladorProcurarDocumento
procurarDocumento()baixarDocumento()
(f rom Controladores)
<<control>>
1
1
1
1
1
1
1
1
1
1
1
1
TelaProcurarDocumento
fachada
procurarDocumento()baixarArquivo()
(f rom GUI)
<<boundary>>
1
0..n
1
0..n
Padrões de Projeto
• Fachada• Singleton• PDC
Mapeamento das classes de análise em elementos de projeto
Classes de análise Elementos de projeto
Fachada
CadastroAlocacaoAdministradores
RepositorioAlocacaoAdministradoresBDR IRepositorioAlocacaoAdministradores CadastroAlocacaoAdministradores
CadastroCursos RepositorioCursosBDR IRepositorioCursos CadastroCursos
CadastroDocumentos RepositorioDocumentosBDR IRepositorioDocumentos CadastroDocumentos
CadastroMatriculasCurso RepositorioMatriculasCursoBDR IRepositorioMatriculasCurso CadastroMatriculasCurso
CadastroServidores RepositorioCadastroServidoresBDR IRepositorioCadastroServidores CadastroServidores
CadastroUsuarios RepositorioCadastroUsuariosBDR IRepositorioCadastroUsuarios CadastroUsuarios
ISubSistemaFinanceiro ISubSistemaFinanceiro FachadaFinanceiro
ISubSistemaComunicacao ISubSistemaComunicacao FachadaComunicacao
* As demais classes de análise são mapeadas diretamente em elementos de projeto (mapeamento 1 para 1).
Arquitetura: Matricular Aluno Curso
Fachada
inserirMatriculaAluno()procurarDocumento()alocarAdministrador()
(f rom Controladores)
Usuario
loginsenhanomecpf
(f rom Usuario)
<<entity>>
IRepositorioUsuarios(f rom Usuario)
<<Interface>>
RepositorioUsuariosBDR(f rom Usuario)
RepositorioCursosBDR(f rom Curso)
RepositorioMatriculasCursoBDR(f rom Matriculas)
Curso(f rom Curso)
<<entity>>
IRepositorioCursos(f rom Curso)
<<Interface>>
MatriculaCurso
cursousuario
(f rom Matriculas)
<<entity>>
IRepositorioMatriculasCurso(f rom Matriculas)
<<Interface>>
TelaMatricularAluno
matricularAluno()
(f rom gui)
<<boundary>>
CadastroCursos
procurar()
(f rom Curso)
<<entity collection>>
0..n0..n
1
1
1
1
CadastroMatriculasCurso
inserir()
(f rom Matriculas)
<<entity collection>>
0..n0..n
1
1
1
1
1
0..n
1
0..n
FachadaFinanceiro(f rom SubSistemaFinanceiro)
ISubSistemaFinanceiro
gerarContaReceber()
(f rom SubSistemaFinanceiro)
<<Interface>>
ControladorMatricularAluno
matricularAluno()
(f rom Controladores)
<<control>>
1
1
1
1 11 1
1
1
1
1
1
1
1
1 CadastroUsuarios
procurar()inserir()
(f rom Usuario)
<<entity collection>>
0..n0..n
1
1
1
1
1
11
1
Arquitetura: Alocar Administrador
Fachada
inserirMatriculaAluno()procurarDocumento()alocarAdministrador()
(f rom Controladores)
Usuario
loginsenhanomecpf
(f rom Usuario)
<<entity>>
IRepositorioUsuarios(f rom Usuario)
<<Interface>>
RepositorioUsuariosBDR(f rom Usuario)
RepositorioCursosBDR(f rom Curso)
RepositorioMatriculasCursoBDR(f rom Matriculas)
Curso(f rom Curso)
<<entity>>
IRepositorioCursos(f rom Curso)
<<Interface>>
MatriculaCurso
cursousuario
(f rom Matriculas)
<<entity>>
IRepositorioMatriculasCurso(f rom Matriculas)
<<Interface>>
TelaMatricularAluno
matricularAluno()
(f rom gui)
<<boundary>>
CadastroCursos
procurar()
(f rom Curso)
<<entity collection>>
0..n0..n
1
1
1
1
CadastroMatriculasCurso
inserir()
(f rom Matriculas)
<<entity collection>>
0..n0..n
1
1
1
1
1
0..n
1
0..n
FachadaFinanceiro(f rom SubSistemaFinanceiro)
ISubSistemaFinanceiro
gerarContaReceber()
(f rom SubSistemaFinanceiro)
<<Interface>>
ControladorMatricularAluno
matricularAluno()
(f rom Controladores)
<<control>>
1
1
1
1 11 1
1
1
1
1
1
1
1
1 CadastroUsuarios
procurar()inserir()
(f rom Usuario)
<<entity collection>>
0..n0..n
1
1
1
1
1
11
1
Arquitetura: Procurar Documentos
Servidor
documentos
procurarDocumento()baixarArquivo()
(f rom Serv idor)
<<entity>>
RepositorioDocumentosBDR(f rom Documentos)
RepositorioServidoresBDR(f rom Serv idor)
TelaProcurarDocumento
fachada
procurarDocumento()baixarArquivo()
(f rom gui)
<<boundary>>
Documento(f rom Documentos)
<<entity>>
IRepositorioDocumentos(f rom Documentos)
<<Interface>>
IRepositorioServidores(f rom Serv idor)
<<Interface>>
Fachada
inserirMatriculaAluno()procurarDocumento()alocarAdministrador()
(f rom Controladores)
0..n
1
0..n
1
CadastroDocumentos
procurarDocumento()
(f rom Documentos)
<<entity collection>>
0..n0..n
1
1
1
1
1
1
1
1
CadastroServidores
procurar()
(f rom Serv idor)
<<entity collection>>
0..n0..n
1
1
1
1
ControladorProcurarDocumento
procurarDocumento()baixarDocumento()
(f rom Controladores)
<<control>>
1
1
1
1
1
1
1
1
1
1
1
1
FachadaComunicacao(f rom SubSistemaComunicacao)
ISubsistemaComunicacao
acessarServidor()
(f rom SubSistemaComunicacao)
<<Interface>>
1
1
1
1
Arquitetura Geral do Sistema
CadastroAlocacaoAdministradores(from Alocacao)
<<entity col lection>>
TelaAlocarAdministrador(from GUI)
<<boundary>>TelaMatricularAluno
matricularAluno()
(from GUI)
<<boundary>>
RepositorioCursosBDR(from Curso)
IRepositorioCursos(from Curso)
<<Interface>>
AlocacaoAdministrador
usuario(from Alocacao)
<<entity>>
0..n0..n
IRepositorioAlocacaoAdministradores(from Alocacao)
<<Interface>>
1
1
1
1
Documento(from Documento)
<<entity>>
RepositorioDocumentosBDR(from Documento)
IRepositorioDocumentos(from Documento)
<<Interface>>
RepositorioMatriculasCursoBDR(from Matricula)
IRepositorioMatriculasCurso(from Matricula)
<<Interface>>
MatriculaCurso
cursousuario
(from Matricula)
<<entity>>
CadastroMatriculasCurso
inserir()
(from Matricula)
<<entity col lection>>
1
1
1
1
0..n0..n
CadastroDocumentos
procurarDocumento()
(from Documento)
<<entity col lection>>
0..n0..n
1
1
1
1
Servidor
documentos
procurarDocumento()baixarArquivo()
(from Servidor)
<<entity>>
1
1
1
1
CadastroServidores
procurar()
(from Servidor)
<<entity col lection>>
0..n0..n
IRepositorioServidores(from Servidor)
<<Interface>>
1
1
1
1
RepositorioServidoresBDR(from Servidor)
FachadaComunicacao(from SubSistemaComunicacao)
ISubsistemaComunicacao
acessarServidor()
(from SubSistemaComunicacao)
<<Interface>>
FachadaFinanceiro(from SubSistemaFinanceiro)
ISubSistemaFinancei ro
gerarContaReceber()
(from SubSistemaFinanceiro)
<<Interface>>
ControladorAlocacaoAdministrador
alocarAdministrador()procurarUsuario()
(from Controladores)
<<control>>
1
1
1
1
ControladorMatricularAluno
matricularAluno()
(from Controladores)
<<control>>
1
1
1
1
1
1
1
1
RepositorioUsuariosBDR(from Usuario)
IRepositorioUsuarios(from Usuario)
<<Interface>>
RepositorioAlocacaoAdministradoresBDR(from Alocacao)
Usuario
loginsenhanomenamecpf
(from Usuario)
<<entity>>
CadastroUsuarios
procurar()inserir()
(from Usuario)
<<entity col lection>>
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0..n0..n 10..n 10..n
Curso(from Curso)
<<entity>>CadastroCursos
procurar()
(from Curso)
<<entity col lection>>
1
1
1
1
1
1
1
1
1 0..n0..n1
ControladorProcurarDocumento
procurarDocumento()baixarDocumento()
(from Controladores)
<<control>>
1
1
1
1
1
1
1
1
1
1
1
1
Fachada
inserirMatriculaAluno()procurarDocumento()alocarAdministrador()
(from Controladores)
0..n
1
0..n
1 0..n
1
0..n
1
1
1
1
1
1
1
1
1
1
1
1
1
TelaProcurarDocumento
fachada
procurarDocumento()baixarArquivo()
(from GUI)
<<boundary>>
0..n
1
0..n
1
Diagrama de Pacotes
Controladores
Alocacao
Curso
Documento
Matricula Usuario
SubSistemaComunicacao<<subsystem>>
GUI<<layer>>
ISubsistemaComunicacao(f rom SubSistemaComunicacao)
<<Interface>>
ISubSistemaFinanceiro(f rom SubSistemaFinanceiro)
<<Interface>>
SubSistemaFinanceiro<<subsystem>>
Servidor
Identificação das cápsulas
Mapeamento: Cápsulas e Protocolos
Classes de análise Elementos de projeto
<<Capsule>> Fachada <<Capsule>> ControladorServidor
TelaProcurarDocumento
<<Capsule>> TelaProcurarDocumento <<Protocol>> ProcurarDocumento
TelaMatricularAluno
<<Capsule>> TelaMatricularAluno <<Protocol>> MatricularAluno
TelaAlocarAdministrador
<<Capsule>> TelaAlocarAdministrador <<Protocol>> AlocarAdministrador
ControladorProcurarDocumento <<Capsule>> ControladorProcurarDocumento <<Protocol>> ControlaDocumento
Identificação de Subsistemas
SubSistemaFinanceiro<<subsystem>>
SubSistemaComunicacao<<subsystem>>
ISubsistemaComunicacao(f rom SubSistemaComunicacao)
<<Interface>>ISubSistemaFinanceiro(f rom SubSistemaFinanceiro)
<<Interface>>
Referências
• Documento de Requisitos• Documento de Análise• Documento de Projeto• www.ensinar.org/projeto• www.cin.ufpe.br/~if718