Tópicos Avançados em Interface
description
Transcript of Tópicos Avançados em Interface
![Page 1: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/1.jpg)
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])
![Page 2: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/2.jpg)
Roteiro
• Introdução• Casos de uso escolhidos• Fluxos de eventos• Diagramas de Seqüência• Classes de Análise (VOPC)• Arquitetura• Cápsulas• Subsistemas
![Page 3: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/3.jpg)
Introdução
• Sistema de gerenciamento de aprendizado
• Ferramentas síncronas e assíncronas
• Interface WEB
![Page 4: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/4.jpg)
Caso de uso: Matricular Aluno em Curso
Efetuar Login
Solicitar Nova Senha
Cadastrar
Anônimo
Sistema Financeiro
Matricular em Curso
<<include>>
![Page 5: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/5.jpg)
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.
![Page 6: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/6.jpg)
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>>
![Page 7: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/7.jpg)
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.
![Page 8: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/8.jpg)
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
![Page 9: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/9.jpg)
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.
![Page 10: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/10.jpg)
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)
![Page 11: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/11.jpg)
Diagrama de Seqüência: Alocar Administrador
: Administrador : TelaAlocarAdministrador : ControladorAlocacaoA...
: CadastroUsuarios : CadastroAlocacaoAdministradores
: AlocacaoAdministradoralocarAdministrador(cpf)
alocarAdministrador(cpf)
usuario = procurar(cpf)
inserir(adm)
existe(usuario)
adm = criar(usuario)
![Page 12: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/12.jpg)
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( )
![Page 13: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/13.jpg)
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
![Page 14: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/14.jpg)
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
![Page 15: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/15.jpg)
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
![Page 16: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/16.jpg)
Padrões de Projeto
• Fachada
• Singleton
• PDC
![Page 17: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/17.jpg)
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
I SubSistemaFinanceiro I SubSistemaFinanceiro
FachadaFinanceiro
I SubSistemaComunicacao ISubSistemaComunicacao
FachadaComunicacao
* As demais classes de análise são mapeadas diretamente em elementos de projeto (mapeamento 1 para 1).
![Page 18: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/18.jpg)
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
![Page 19: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/19.jpg)
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
![Page 20: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/20.jpg)
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
![Page 21: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/21.jpg)
Arquitetura Geral do Sistema
CadastroAlocacaoAdministradores(from Alocacao)
<<entity collection>>
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 collection>>
1
1
1
1
0..n0..n
CadastroDocumentos
procurarDocumento()
(from Documento)
<<entity collection>>
0..n0..n
1
1
1
1
Servidor
documentos
procurarDocumento()baixarArquivo()
(from Servidor)
<<entity>>
1
1
1
1
CadastroServidores
procurar()
(from Servidor)
<<entity collection>>
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)
ISubSistemaFinanceiro
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 collection>>
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 collection>>
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
![Page 22: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/22.jpg)
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
![Page 23: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/23.jpg)
Identificação das cápsulas
![Page 24: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/24.jpg)
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
![Page 25: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/25.jpg)
Identificação de Subsistemas
SubSistemaFinanceiro<<subsystem>>
SubSistemaComunicacao<<subsystem>>
ISubsistemaComunicacao(f rom SubSistemaComunicacao)
<<Interface>>
ISubSistemaFinanceiro(f rom SubSistemaFinanceiro)
<<Interface>>
![Page 26: Tópicos Avançados em Interface](https://reader036.fdocuments.net/reader036/viewer/2022062518/56814bf3550346895db8e014/html5/thumbnails/26.jpg)
Referências
• Documento de Requisitos
• Documento de Análise
• Documento de Projeto
• www.ensinar.org/projeto
• www.cin.ufpe.br/~if718