tópicos avançados em interface

26
Tópicos Avançados Tópicos Avançados em Interface em Interface Equipe Ivanildo José de Sousa Aquino Júnior ([email protected] ) Milton Burgos Josué Neto ([email protected] )

Upload: nau

Post on 16-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Tópicos Avançados  em Interface

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

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

Introdução

• Sistema de gerenciamento de aprendizado

• Ferramentas síncronas e assíncronas

• Interface WEB

Page 4: Tópicos Avançados  em Interface

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

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

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

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

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

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

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

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

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

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

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

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

Padrões de Projeto

• Fachada

• Singleton

• PDC

Page 17: Tópicos Avançados  em Interface

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

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

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

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

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

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

Identificação das cápsulas

Page 24: Tópicos Avançados  em Interface

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

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

Referências

• Documento de Requisitos

• Documento de Análise

• Documento de Projeto

• www.ensinar.org/projeto

• www.cin.ufpe.br/~if718