Tópicos Avançados em 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 Sistema Financeiro Matricular em Curso Solicitar Nova Senha <<include>> Anônimo Efetuar Login Cadastrar 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. Include (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 Inserir Usuário <<include>> Atualizar Usuário <<include>> <<include>> Administrador Remover Usuário <<include>> Efetuar Login (from Anônimo) <<include>> Desalocar Administrador Alocar Administrador 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. Include (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 Matricular em Turma <<include>> Solicitar Trancamento de Matrícula <<include>> <<include>> Entrar em Grupo <<include>> Aluno (f rom Actors) <<include>> Efetuar Login (from Anônimo) Sair do Grupo Realizar Avaliação 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. Include (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 matricularAluno(cpf, cursoId, valor) matricular(cpf, curso_id, valor) usuario = procurar(cpf,) curso = procurar(cursoId) matricula = criar(curso, usuario) inserir(matricula) gerarContaAReceber(usuario, valor) : CadastroCursos : MatriculaCurso : CadastroMatriculasCurso : Sistema Financeiro Diagrama de Seqüência: Alocar Administrador : Administrador : TelaAlocarAdministrador alocarAdministrador(cpf) : CadastroUsuarios : ControladorAlocacaoA... : AlocacaoAdministrador : CadastroAlocacaoAdministradores alocarAdministrador(cpf) usuario = procurar(cpf) adm = criar(usuario) inserir(adm) existe(usuario) Diagrama de Sequência: Procurar Documentos : Aluno : TelaProcurarDocumento procurarDocumento(palavraChave) : ControladorProcurar... : CadastroDocumentos : ISubsiste... : CadastroServidores : Servidor : CadastroDocumentos procurarDocumento(palavraChave) documentosLocais = procurar(palavraChave) servidores = procurarServidores() servidorAtual = acessarServidor(servidor) documentos = procurarDocumentos(palavraChave) procurarDocumentos(palavraChave) exibirListaDocumentos() baixarArquivo(documento, servidor) baixarArquivo(documento, servidor) baixarArquivo( ) Classes de Análise: Matricular aluno em curso Classes de Análise: Alocar Administrador Classes de Análise: Procurar documentos 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 Arquitetura: Alocar Administrador Arquitetura: Procurar Documentos Arquitetura Geral do Sistema Diagrama de Pacotes Documento <<layer>> GUI <<subsystem>> SubSistemaFinanceiro <<Interface>> ISubSistemaFinanceiro Servidor (f rom SubSistemaFinanceiro) Controladores <<Interface>> ISubsistemaComunicacao (f rom SubSistemaComunicacao) Curso <<subsystem>> SubSistemaComunicacao Matricula Usuario Alocacao 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 <<subsystem>> SubSistemaComunicacao <<subsystem>> SubSistemaFinanceiro <<Interface>> ISubsistemaComunicacao <<Interface>> ISubSistemaFinanceiro (f rom SubSistemaComunicacao) (f rom SubSistemaFinanceiro) Referências • • • • • Documento de Requisitos Documento de Análise Documento de Projeto www.ensinar.org/projeto www.cin.ufpe.br/~if718