hhd – help the helpdesk análise e projeto
Post on 28-Jan-2016
36 Views
Preview:
DESCRIPTION
TRANSCRIPT
HHD – Help the HelpDeskAnálise e Projeto
Henrique Borges (hbas@cin.ufpe.br)Igor Marques (irlm@cin.ufpe.br)Jobson Ronan (jrjs@cin.ufpe.br)
Motivação
“Com o crescimento da complexidade do ambiente tecnológico, o pessoal do Helpdesk passou a dispender muito mais tempo para encontrar soluções, uma vez que os usuários passaram a trazer questões cada vez mais sofisticadas.”
“Sistemas de Gerência de Helpdesk são necessários para proativamente detectar, corrigir e previnir problemas nos sistemas de aplicação.”
Cliff Oxford, fundador e presidente da Support Technologies
Roteiro
Visão Geral do SistemaCasos de UsoAnálise de Casos de UsoProjeto de ArquiteturaPadrões de Projeto
Objetivos do SistemaUsuários podem: Realizar pedidos Acompanhar o estado do pedido Acompanhar a lista de todos os pedidos
pendentes
Auxiliar no escalonamento da equipe do HelpdeskMelhorar a transparência do setor, permitindo o acompanhamento das tarefas por qualquer usuário do sistema
Casos de Uso
Atores Usuário (abstrato)
Requester Helper
Sistema de Email Timer
Casos de Uso
Casos de Uso do Usuário
Efetuar Logoff
Efetuar Login
Visualizar Detalhes da Solicitacao
Visualizar Estatisticas Gerais
Visualizar Solicitacoes na Fila de Espera
Visualizar Solicitacoes em Atendimento
Visualizar Solicitacoes Finalizadas
Usuario
Sistema de Email
Enviar Mensagem Sobre Solicitação
<<include>>
Casos de Uso
Casos de Uso do Requester
Visualizar Solicitacoes Finalizadas
Usuario
Realizar uma Solicitação
Solicitar Reabertura da Solicitação
<<include>>
Avaliar Atendimento de Solicitação
<<include>>
Requester
Casos de Uso
Casos de Uso do Helper
Visualizar Solicitacoes na Fila de Espera
Aceitar Solicitacao
<<include>>
Alterar Estado da SolicitacaoHelper
Visualizar Detalhes da Solicitacao
<<include>>
Usuario
Casos de Uso
Caso de Uso do Relógio
Atualizar Estatisticas GeraisRelogio
Análise de Casos de Uso
Casos de Uso Selecionados [RF-07] Enviar mensagem sobre
solicitação [RF-11] Realizar uma solicitação [RF-14] Atualizar Estatísticas Gerais
Análise: Enviar mensagem sobre solicitação
Diagrama de Seqüência
: ComunicacaoSistemaDeEmail : Usuario : TelaEnviarMensagem : ControladorEnviarMen...
: CadastroSolicitacoes
solicitacao : Solicitacao
enviarMensagem()
enviarMensagem(usuario, idSolicitacao, mensagem)
solicitacao := procurarSolicitacao(idSolicitacao)
adicionarMensagem(mensagem)
atualizarSolicitacao(solicitacao)
msgEmail := criarMsgEmail(MensagemSolicitacao)
enviarEmail(msgEmail)
Análise: Enviar mensagem sobre solicitação
VOPC
Análise: Realizar uma solicitação Diagrama de Seqüência
: Requester : TelaNovaSolicitacao : ControladorNovaSolicit...
: Solicitacao :
CadastroSolicitacoes
abrirNovaSolicitacao()
abrirNovaSolicitacao(requester, solicitacao)
setRequester(requester)
cadastrarSolicitacao(Solicitacao)
Análise: Realizar uma solicitação VOPC
Análise: Atualizar Estatísticas Gerais
Diagrama de Seqüência
: Relogio : InterfaceRelogio : ControladorAtualizarEst...
: CadastroSolicitacoes : CadastroEstatisticas
interrupcao()atualizarEstatisticas()
solicitacoes = listarSolicitacoes( )
estatistica = computarEstatisticas()
cadastrarEstatistica(estatistica)
Análise: Atualizar Estatísticas Gerais
VOPC
Estatistica
InterfaceRelogio
interrupcao()
CadastroEstatisticas
cadastrarEstatistica()
<<entity collection>>
0..*1 0..*1
ControladorAtualizarEstatisticas
atualizarEstatisticas()computarEstatisticas()
1
1
1
1
1
1
1
1
CadastroSolicitacoes
listarSolicitacoesEmEspera()atualizarSolicitacao()cadastrarSolicitacao()procurarSolicitacao()listarSolicitacoes()
<<entity collection>>
1
1
1
1
Solicitacao
setHelper()setRequester()
adicionarMensagem()
1
0..*
1
0..*
Mapeamento entre Classes de Análise e Elementos de Projeto
Classes de Análise Elementos de Projeto<<capsule>> TelaAceitarSolicitacao<<protocol>> ProtocoloAceitarSolicitacao<<capsule>> TelaEnviarMensagem<<protocol>> ProtocoloEnviarMensagem<<capsule>> TelaNovaSolicitacao<<protocol>> ProtocoloNovaSolicitacao<<capsule>> Relogio<<protocol>> AtivacaoPeriodica<<capsule>> FachadaISubsistemaComunicacaoEmailFachadaComunicacaoEmailProtocoloComunicacaoEmail
ContaUsuario UsuarioContaHelper HelperContaRequester Requester
CadastroSolicitacoesIRepositorioSolicitacoesRepositorioSolicitacoesBDRCadastroUsuariosIRepositorioUsuariosRepositorioUsuariosBDRCadastroEstatisticaIRepositorioEstatisticaRepositorioEstatisticaBDRFabricaRepositorioFabricaRepositorioBDR
TelaAceitarSolicitacao
TelaEnviarMensagem
TelaNovaSolicitacao
InterfaceRelogio
ComunicacaoSistemaDeEmail
<<entity collection>> CadastroSolicitacoes
<<entity collection>> CadastroContasUsuario
<<entity collection>> CadastroEstatisticas
Projeto de Arquitetura
Princípios seguidos Divisão em Camadas Inversão de Controle
Projeto de Arquitetura
Visão dos pacotes
controle
ui
subsistemaComunicacaoEmail
<<subsystem>>
usuarios
ISubsistemaComunicacaoEmail
util<<global>>
solicitacoesestatisticas
persistencia
comm
Projeto de Arquitetura
Pacote ui
ProtocoloNovaSolicitacao(from comm)
<<protocol>>
TelaNovaSolicitacao
abrirNovaSolicitacao()
<<capsule>>
+protooloNovaSolicitacao
<<port>>
ProtocoloEnviarMensagem(from comm)
<<protocol>>
TelaEnviarMensagem
enviarMensagem()
<<capsule>>
+protocoloEnviarMensagem
<<port>>
ProtocoloAceitarSolicitacao(from comm)
<<protocol>>
TelaAceitarSolicitacao
aceitarSolicitacao()
<<capsule>>
+protocolAceitarSolicitacao
<<port>>
Projeto de Arquitetura
Pacote comm
TelaAceitarSolicitacao(from ui)
<<capsule>>TelaEnviarMensagem
(from ui)
<<capsule>>
AtivacaoPeriodica
<<out signal>> interrupcao()
<<protocol>>
ProtocoloAceitarSolicitacao
<<out signal>> aceitarSolicitacao()<<in signal>> solicitacaoAceita()
<<protocol>>
+protocolAceitarSolicitacao
<<port>>
ProtocoloEnviarMensagem
<<out signal>> enviarMensagem()<<in signal>> MensagemEnviada()
<<protocol>>
+protocoloEnviarMensagem
<<port>>
Fachada(from controle)
<<capsule>>
+interrupcao~<<port>>
+protocoloAceitarSolicitacao~
<<port>>
+protocoloEnviarMensagem~
<<port>>
ProtocoloNovaSolicitacao
<<out signal>> novaSolicitacao()<<in signal>> novaSolicitacaoCriada()
<<protocol>>
+protooloNovaSolicitacao~
<<port>>
TelaNovaSolicitacao(from ui)
<<capsule>>
+protooloNovaSolicitacao
<<port>>
Projeto de Arquitetura
Pacote controle
ControladorAceitarSolicitacao
aceitarSolicitacao()criarMensagemSolicitacaoAceita()
ControladorNovaSolicitacao
abrirNovaSolicitacao()
ControladorEnviarMensagem
enviarMensagem()criarMsgEmail()
ControladorAtualizarEstatisticas
atualizarEstatisticas()computarEstatisticas()
Relogio<<capsule>>
AtivacaoPeriodica(from comm)
<<protocol>>
<<port>>
+interrupcao
ProtocoloAceitarSolicitacao(from comm)
<<protocol>>
ProtocoloEnviarMensagem(from comm)
<<protocol>>
ProtocoloNovaSolicitacao(from comm)
<<protocol>>
Fachada
getInstance()
<<capsule>>+interrupcao~
<<port>> +protocoloAceitarSolicitacao~
<<port>>
+protocoloEnviarMensagem~
<<port>>
+protooloNovaSolicitacao~<<port>>
Projeto de Arquitetura
Subsistema de comunicação por e-mail Contexto do subsistema
MensagemEmail
origem : Stringdestinatario : Stringdescricao : String
<<entity>>
ControladorEnviarMensagem
ISubsistemaComunicacaoEmail
enviarEmail()
ControladorAceitarSolicitacao
FachadaComunicacaoEmail<<singleton>>
Projeto de Arquitetura
Subsistema de comunicação por e-mail Diagrama de classesISubsistemaComunicacaoEmail
enviarEmail()
MensagemEmail
origem : Stringdestinatario : Stringdescricao : String
ProtocoloComunicacaoEmail
enviarEmail()
FachadaComunicacaoEmail<<singleton>>
Projeto de Arquitetura
Pacote estatísticas
Estatistica
totalSolicitacoesAtendidas : IntegertempoAtendimentoCompleto : IntegertempoEmFilaDeEspera : IntegertempoEmAtendimento
IRepositorioEstatisticas
CadastroEstatisticas
cadastrarEstatistica() 1
0..*
1
0..*
RepositorioEstatisticasBDR(from persistencia)
Projeto de Arquitetura
Pacote usuarios
Requester Helper
nome : Stringcargo : String
Usuario
login : Stringsenha : String
getSenha()
IRepositorioUsuarios<<Interface>>
CadastroUsuarios
procurarUsuario()
1 0..*1 0..*
RepositorioUsuariosDBR(from persistencia)
Projeto de Arquitetura
Pacote solicitacoes
RepositorioSolicitacoesBDR(from persistencia)
IRepositorioSolicitacoes
CadastroSolicitacoes
listarSolicitacoesEmEspera()atualizarSolicitacao()cadastrarSolicitacao()procurarSolicitacao()listarSolicitacoes()
MensagemSolicitacao
descricao
Helper(from usuarios)Solicitacao
setHelper()setRequester()adicionarMensagem()adicionarMensagem()
1 0..*1 0..*
1
0..*
1
-mensagens
0..*
1
0..1
1
-helper
0..1
Requester(from usuarios)
11
1 -requester
1
Projeto de Arquitetura
Pacote persistencia
RepositorioEstatisticasBDR RepositorioSolicitacoesBDRRepositorioUsuariosDBR
FabricaRepositorio(from uti l)
<<abstract factory>>
IRepositorioEstatisticas(from estatisticas)
<<Interface>>IRepositorioSolicitacoes
(from solici tacoes)
<<Interface>>IRepositorioUsuarios
(from usuarios)
<<Interface>>
FabricaRepositorioBDR
<<cria>> <<cria>> <<cria>>
Padrões de Projeto
Padrões Estruturais Façade PDC
Padrões Criacionais Singleton Abstract Factory Factory Method
Padrões de Projeto
Contexto dos padrões Abstract Factory e Factory Method
CadastroEstatisticas(from estatisticas)
IRepositorioEstatisticas
(from estatisticas)
CadastroSolicitacoes(from solici tacoes)
IRepositorioSolicitacoes
(from solici tacoes)
CadastroUsuarios(from usuarios)
IRepositorioUsuarios
(from usuarios)
FabricaRepositorio(from util)
<<abstract factory>>
<<usa>>
<<usa>><<usa>>
<<cria>>
<<cria>><<cria>>
Dúvidas???
top related