siga siga sistema gestor de alunos aline timóteo denise narciso flávia falcão nara falcão...
TRANSCRIPT
SigA
SigASistema Gestor de Alunos
Aline Timóteo
Denise Narciso
Flávia Falcão
Nara Falcão
{alt,damn,fmcf2,naf}@cin.ufpe.br
SigA
Índice
• Descrição do Sistema• Requisitos Funcionais do SigA• Processo de Análise
• Pesquisar Alunos por Disciplina • Exibir Relatório do Mecanismo de Inferência • Consultar Inadimplentes
• Pacotes• Capsulas• Subsistemas• Conclusão
SigA
Descrição do Sistema
• O SigA tem como objetivo principal fornecer informações sobre o rendimento escolar dos alunos da Universidade.
• Este sistema utiliza a base de dados do SIG@.
• A instituição de ensino poderá oferecer um acompanhamento mais direcionado aos alunos.
• Gestor de Alunos
SigA
Requisitos Funcionais do SIGA
• Pesquisar Disciplinas • Pesquisar Alunos por Disciplina• Pesquisar Alunos por Maiores Números de
Reprovações• Pesquisar Alunos por melhores médias • Pesquisar alunos por outras atividades • Exibir detalhes do Aluno • Exibir Relatório do Mecanismo de
Inferência • Consultar Inadimplentes
• Pesquisar Alunos por Disciplina
• Consultar Inadimplentes
• Exibir Relatório do Mecanismo de Inferência
SigA
Exibir Relatorio do Mecanismo de Inferencia Exibir Detalhes do Aluno
Pesquisar Aluno Por Disciplina
<<include>>
Pesquisar Aluno Por Maiores Número de Reprovações
<<include>>
Pesquisar Alunos por Disciplina
<<include>>
Pesquisar Alunos Por Maiores Médias
<<include>>
Pesquisar Alunos por Outras Atividades
<<include>>
Pesquisar Aluno por Perfil
<<include>>
PesquisarDisciplina
Gestor
Unidade_de_Ensino
Consultar Inadinplentes
SigA
Processo de Análise
SigA
Processo de Análise: Pesquisar Alunos por Disciplina
• Prioridade: Essencial• Atores: Gestor de Alunos• Pré-Condição: Logado no Sig@• Pós-Condição:• Entrada: Código da disciplina,
situação do aluno e critério de busca.
• Saída: Lista de Alunos
SigA
Diagrama de Seqüência
: Visao : Gestor : TelaPesquisa : ControladorPesquisa :
CadastroDisciplina :
CadastroHistorico
efetuarPesquisa(idDisciplina,situacaoAluno,criterio) efetuarPesquisa(idDisciplina,situacaoAluno,criterio)exite:=existeDisciplina(idDisciplina )
[exite=true] dados: = pesquisaAlunoDisciplina(idDisciplina,situacaoAluno,criterio)
detalharAluno( codAluno)detalharAluno(codAluno )
dados=historicoAluno( codAluno)
construirVisao(dados)
ListaAlunos
ExibeDetalhes
construirVisao(dados)
SigA
VOPCVisao
(from RelatorioInferencia)
TelaPesquisa
efetuarPesquisa()detalharAluno()
<<boundary>>
ControladorPesquisa
efetuarPesquisa()detalharAluno()
<<control>>1
0..*
1
0..*
CadastroHistorico
PesquisaAlunoDisciplina()historicoAluno()
<<entity collection>>
11
11
Aluno
identidadenomematriculacpfcodigo
<<entity>>
CadastroDisciplina
existeDisciplina()
<<entity collection>>
11
11
Historico<<entity>>
0..*
1
0..*
1
1
1
1
1
Periodo
notassemestre
(from RelatorioInferencia)
<<entity>>
0..*1
Disciplina
cargaHorariacodigocreditosdescricaodificuldade
<<entity>>
0..*
1
0..*
1
0..*11 0..*
1 0..*
SigA
Processo de Análise: Exibir Relatório do Mecanismo de Inferência
• Prioridade: Desejável• Atores: Gestor de Alunos• Pré-Condição: O usuário deve estar
logado no sig@• Pós-Condição: • Entrada: O aluno selecionado• Saída: Detalhes do Aluno selecionado
SigA
Diagrama de seqüência
: Gestor:TelaRelatorioIn
ferencia:ControladorRela
torioInferencia:CadastroAluno :CadastroHistorico :CadastroDiciplina :CadastroAtividadeExtra Visao
fazerInferencia(Nomealuno)
procuraAluno(NomeAluno)
procurarDisciplina
procurarAtividadeExtra
historicoAluno(Aluno)
Inferencia()
fazerInferencia(Nomealuno)
criarVisao()
SigA
VOPCTelaRelatorioInferencia
fazerInferencia()
<<boundary>>
Visao<<entity>>
ControladorRelatorioInferencia
fazerInferencia()
<<control>>1
0..*
1
0..*
CadastroAluno
procurarAluno()
<<entity collection>>1
1
1
1
CadastroDisciplina
procuraDisciplina()
<<entity collection>>
1
1
1
1
CadastroAtividadeExtra
procuraAtividadeExtra()
<<entity collection>>
1
1
1
1
Disciplina
cargaHorariacodigocreditosdescricaodificuldade
<<entity>>
0..*
1
0..*
1
AtividadeExtra
descricaocargaHorariatipocodigo
<<entity>>
0..*
1
0..*
1
CadastroHistorico
procurarHistorico()
<<entity collection>> 1
1
1
1
Aluno
identidadenomematriculacpfcodigo
<<entity>>0..*
1
0..*
1
Periodo
notassemestre
<<entity>>
0..*
1
0..*
1
0..*
1
0..*
1
Historico<<entity>>
0..*
1
0..*
1
11
11
0..*
1
0..*
1
SigA
Processo de Análise: Consultar Inadimplentes
• Prioridade: Desejável• Atores: Gestor• Pré-Condição: O usuário deve estar
logado no sig@• Pós-Condição: • Entrada: A opção de visualização dos
dados (gráfico, tabela, relatório)• Saída: Lista de alunos inadimplentes,
que pode ser visualizada através de um gráfico, relatório ou tabela.
SigA
Diagrama de Seqüência
ComunicacaoFilialVisaoCadastroFilialControladorInformacaoTelaInformacao
1: ConsultaInadimplentes()1: ConsultaInadimplentes()1.1: ConsultaFiliais()1.1: ConsultaFiliais()
1.2: ConsultaInadimplentesFilial()1.2: ConsultaInadimplentesFilial()
1.2.1: 1.2.1:
1.3: ContruirVisao()1.3: ContruirVisao()
Para Cada Filial
SigA
VOPC
Com unicacaoFilial<<bondary>>
TelaInform acao
ConsultaInadim plentes()
<<bondary>>
filial
Codigo
<<entity>>
CadastroFilial
ConsultaFilial()
<<entity
0..*
1
0..*
1
ControladorInform acao
ConsultaInadim plentesFilial()
<<Control>>
1
0..*
1
0..*
1
1
1
1
Visao
ContruirVisao()
<<entity>>
1
1
1
1
SigA
Mapeamento das classes de Análise para Projeto
SigA
Classes de Análise Elementos de Projeto
Aluno AlunoCadastroAluno
IRepositorioAluno
RepositorioAlunoDicisplina Dicisplina
CadastroDicisplinaIRepositorioDicisplinaRepositorioDicisplina
AtividadeExtra AtividadeExtraCadastroAtividadeExtra
IRepositorioAtividadeExtra
RepositorioAtividadeExtra
Historico HistoricoCadastroHistorico
IRepositorioHistorico
RepositorioHistorico
Filial FilialCadastroFilial
IRepositorioFilial
RepositorioFilial
<<Capsule>>TelaInformacao
<<Protocol>>ConsultaInadimplente
<<Protocol>>ProtocoloExibicao<<Capsule>> ControladorInformacao
<<Protocol>>InteracaoFiliais
CadastroAluno
CadastroDicisplina
CadastroAtividadeExtra
CadastroHistorico
CadastroFilial
TelaInformacao
ControladorInformacao
Mapeamento (1)
SigA
Classes de Análise Elementos de Projeto
<<Capsule>> Fachada
Visão ISubsistemaVisão
ISubsistemaComunicacaoFiliais
FachadaComunicacaoFilialSubsistemaComunicacaoFilial<<Capsule>>ComunicacaoFilialA<<Capsule>>ComunicacaoFilialB<<Capsule>> TelaRelatorioInferencia<<Protocol>>ProtocoloRelatorio<<Capsule>> TelaPesquisa
<<Protocol>> ListaAlunos
ControladorDePesquisa
ControladorRelatorioInferencia ControladorRelatorioInferencia
ComunicacaoFiliais
TelaRelatorioInferencia
TelaPesquisa
Mapeamento (2)
SigA
Pacotes em nível de Implementação
SigA
atividadeExtra
comunicacao
disciplina
Gui
alunohistorico
comunicacaoFilial
Controladores
Filial
Visao<<subsystem>>
SigA
Pacote GUI
SigA
Pacote Controladores
SigA
Pacote Aluno
Aluno
identidade : intnome : Stringcodigo : intmatricula : intcpf : int
setIdentidade()setCpf()setNome()setMatricula()setCodigo()getIdentidade()getCpf()getNome()getMatricula()getCodigo()
RepositorioAluno
IRepositorioAluno
procuraAluno()
CadastroAluno
procuraAluno()
SigA
Pacote Histórico
RepositorioHistorico
Periodo
notasemestre
setNota()setSemestre()getNota()getSemestre()
Historico
IRepositorioHistorico
historicoAluno()
CadatroHistorico
historicoAluno()
SigA
Pacote Atividade Extra
AtividadeExtra
descricao : StringcargaHoraria : inttipo : intcodigo : int
setDescricao()setCargaHoraria()setTipo()setCodigo()getDescricao()getCargaHoraria()getTipo()getCodigo()
RepositorioAtividadeExttra
IRepositorioAtividadeExtra
procuraAtividadeExtra()
CadastroAtividadeExtra
procuraAtividadeExtra()
SigA
Pacote Disciplina
Disciplina
codigo : intcargaHoraria : intcreditos : intdificuldade : intdescricao : String
setCodigo()setCargaHoraria()setCreditos()setDificuldade()setDescricao()getCodigo()getCargaHoraria()getCreditos()getDificuldade()getDescricao()
RepositorioDisciplina
IRepositorioDisciplina
existeDisciplina()procuraDisciplina()
CadastroDisciplina
existeDisciplina()procuraDisciplina()
SigA
Pacote Filial
Filial
codigo
setCodigo()getCodigo()
IRepositorioFilial
NewInterface3
consultaFilial()
CadastroFilial
ConsultaFilial()
SigA
Pacote Comunicacao Filial
FachadaComunicacaoFilial
ISubsistemaComunicacaoFilial
consultarInadimplentesFilial()
SigA
Pacote Visão
SigA
Cápsulas do Sistema
SigA
Cápsulas do Sistema
• O caso de uso “consultar inadimplentes Filial” .
• Concorrência na solicitação de informações.
ComunicacaoFilial
<<bondary>>Com unicacaoFilial<<Capsule>>
SigA
Arquitetura InterfaceCom unicacaoFilial
+ / InteracaoFiliais : InteracaoFiliais
<<Capsule::Interface>>
Com unicacaoFilial
+ / InteracaoFiliais : InteracaoFiliais
<<Capsule>>
InteracaoFiliais
consultaInadinplentes ()
dadosInadinplentes ()
<<Protocol>>
+ / InteracaoFiliais<<Port>> + / InteracaoFiliais<<Port>>
+ / InteracaoFiliais<<Port>> + / InteracaoFiliais<<Port>>
Com unicacaoFilialA
consultaInadinplentes()
+ / ConsultaFilialA : InteracaoFiliais
<<Capsule>>
/ com unicacaoFilialAR 4 / com unicacaoFilialAR 4
ISubsistem aCom unicacaoFilialA
Com unicacaoFilialB
consultaInadinplentes()
+ / ConsultaFilialB : InteracaoFiliais
<<Capsule>>
/ com unicacaoFilialBR 3 / com unicacaoFilialBR 3
ISubsistem aCom unicacaoFilialB
SigA
Arquitetura (2)
SigA
Pacote Comunicação
consultaInadim plentes
solicitacaoInform acao ()
visao ()
<<Protocol>>
ListaAlunos
dadosPesquisa ()
listaAlunos ()
<<Protocol>>ProtocoloR elatorio
codAluno ()
exibeR elatorio ()
<<Protocol>>
InteracaoFiliais
consultaInadim plentesFilial ()
dadosInadim plentesFilial ()
<<Protocol>>
SigA
Subsistema Visão
Subsistem aInternoVisao
InterfaceVisao
• Subsistema interno do sistema.
• Modulo Grafico e de processamento do sistema.
• Fornece diferentes visoes para os mesmos dados.
SigA
Padrões de Projeto
• Facade– Oferece um ponto centralizado e unificado
para um conjunto de interfaces em um subsistema ou do sistema como um todo, que representa o conjunto de serviços oferecidos. O SigA implementa a Fachada como um ponto de acesso único para as funcionalidades, isolando os diversos componentes do sistema
SigA
Padrões de projeto (2)
• PDC –Persistent Data collections– Destrincha cada coleção persistente de dados
em duas classes e uma interface: uma classe Cadastro da coleção propriamente dita e uma classe Repositório que implementa uma forma de persistência física específica, em conjunto com uma interface para isolá-la do Cadastro
SigA
Padroes de projeto(3)
• Singleton– Assegura que a classe terá uma única
instância e provê um ponto único de acesso a ela.
– é usado, portanto, dentro da classe Fachada, para limitar a sua instância, acessível a partir de um único ponto específico.
SigA
Arquitetura finalTelaR elatorioInferencia
fazerInferencia()
+ / N ew Port1 : protocoloR elatorio
<<Capsule>>
Telainform acao
consultaInadim plentes()
+ / ConsultaInadim plente : consultaInadim plentes+ / N ew Port1 : consultaInadim plentes
<<Capsule>>TelaPesquisa
efetuarPesquisa()detalharAluno()
+ / N ew Port1 : ListaAlunos
<<Capsule>>
ListaAlunos
dadosPesquisa ()
listaAlunos ()
<<Protocol>>
+ / N ew Port1
<<Port>>
+ / N ew Port1
<<Port>>
protocoloR elatorio
codAluno ()
exibeR elatorio ()
<<Protocol>>
+ / N ew Port1
<<Port>>
+ / N ew Port1
<<Port>>
consultaInadim plentes
solicitacaoInform acao ()
visao ()
<<Protocol>>
+ / N ew Port1
<<Port>>
+ / N ew Port1
<<Port>>
InteracaoFiliais
consultaInadim plentes ()
dadosInadim plentes ()
<<Protocol>>
controladorInform acao
ConsultaInadim plenteFilial()
+ / N ew Port1 : consultaInadim plentes+ / N ew Port2 : InteracaoFiliais
<<Capsule>>
+ / N ew Port1<<Port>>
+ / N ew Port1<<Port>>
+ / N ew Port2
<<Port>>
+ / N ew Port2
<<Port>>
Filial
codigo
CadastroFilial
ConsultaFilial()
<<entity collection>>
IR epositorioFilial
R epositorioFilialBD RCom unicacaofilial
+ / N ew Port1 : InteracaoFiliais
<<Capsule>>
+ / N ew Port1
<<Port>>
+ / N ew Port1
<<Port>>
ISubsistem aCom unicacaoFilial
FachadaCom unicacaoFilial
SubSistem aVisao<<Subsystem >>
ISubsistem aVisao
fachada
efetuarPesquisa()fazerInferencia()consultarInadim plentes()detalharAluno()
+ / N ew Port1 : ListaAlunos+ / N ew Port2 : protocoloR elatorio+ / N ew Port3 : consultaInadim plentes
<<Capsule>>
+ / N ew Port1
<<Port>>
+ / N ew Port1
<<Port>>
+ / N ew Port2<<Port>>
+ / N ew Port2<<Port>> + / N ew Port3
<<Port>>
+ / N ew Port3
<<Port>>
CadastroH istorico
historicAluno()
<<entity collection>>
IR epositorioH istorico
R epositorioH istorico
H istorico
AlunoIR espositorioAluno
R epositorioAluno
CadastroAluno
procuraAluno()
<<entity collection>>
ControladorG eral
detalhaAluno()fazernferencia()inferencia()
<<Control>>
CadastroD isciplina
procuraD isciplina()
<<entity collection>>
IR epositorioD isciplina
R epositorioD isciplina
D isciplina
CadastroAtividadeExtra
procuraAtividadeExtra()
<<entity collection>>
IR epositorioAtividadeExtra
Periodo
AtividadeExtra
R epositorioAtividadeExtra
SigA
Referências
• Developing Applications with Java™ and UML
• Visual Modeling With Rational Rose and Uml• IF718 – Análise e Projeto de Sistemas• Documento de Requsitos SigA• Documento de Analise SigA• Documento de Arquitetura SigA
SigA
SigASistema Gestor de Alunos
Aline Timóteo
Denise Narciso
Flávia Falcão
Nara Falcão
{alt,damn,fmcf2,naf}@cin.ufpe.br