Transcript
Page 1: HHD – Help the HelpDesk Análise e Projeto

HHD – Help the HelpDeskAnálise e Projeto

Henrique Borges ([email protected])Igor Marques ([email protected])Jobson Ronan ([email protected])

Page 2: HHD – Help the HelpDesk Análise e Projeto

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

Page 3: HHD – Help the HelpDesk Análise e Projeto

Roteiro

Visão Geral do SistemaCasos de UsoAnálise de Casos de UsoProjeto de ArquiteturaPadrões de Projeto

Page 4: HHD – Help the HelpDesk Análise e 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

Page 5: HHD – Help the HelpDesk Análise e Projeto

Casos de Uso

Atores Usuário (abstrato)

Requester Helper

Sistema de Email Timer

Page 6: HHD – Help the HelpDesk Análise e Projeto

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>>

Page 7: HHD – Help the HelpDesk Análise e Projeto

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

Page 8: HHD – Help the HelpDesk Análise e Projeto

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

Page 9: HHD – Help the HelpDesk Análise e Projeto

Casos de Uso

Caso de Uso do Relógio

Atualizar Estatisticas GeraisRelogio

Page 10: HHD – Help the HelpDesk Análise e Projeto

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

Page 11: HHD – Help the HelpDesk Análise e Projeto

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)

Page 12: HHD – Help the HelpDesk Análise e Projeto

Análise: Enviar mensagem sobre solicitação

VOPC

Page 13: HHD – Help the HelpDesk Análise e Projeto

Análise: Realizar uma solicitação Diagrama de Seqüência

: Requester : TelaNovaSolicitacao : ControladorNovaSolicit...

: Solicitacao :

CadastroSolicitacoes

abrirNovaSolicitacao()

abrirNovaSolicitacao(requester, solicitacao)

setRequester(requester)

cadastrarSolicitacao(Solicitacao)

Page 14: HHD – Help the HelpDesk Análise e Projeto

Análise: Realizar uma solicitação VOPC

Page 15: HHD – Help the HelpDesk Análise e Projeto

Análise: Atualizar Estatísticas Gerais

Diagrama de Seqüência

: Relogio : InterfaceRelogio : ControladorAtualizarEst...

: CadastroSolicitacoes : CadastroEstatisticas

interrupcao()atualizarEstatisticas()

solicitacoes = listarSolicitacoes( )

estatistica = computarEstatisticas()

cadastrarEstatistica(estatistica)

Page 16: HHD – Help the HelpDesk Análise e Projeto

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..*

Page 17: HHD – Help the HelpDesk Análise e Projeto

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

Page 18: HHD – Help the HelpDesk Análise e Projeto

Projeto de Arquitetura

Princípios seguidos Divisão em Camadas Inversão de Controle

Page 19: HHD – Help the HelpDesk Análise e Projeto

Projeto de Arquitetura

Visão dos pacotes

controle

ui

subsistemaComunicacaoEmail

<<subsystem>>

usuarios

ISubsistemaComunicacaoEmail

util<<global>>

solicitacoesestatisticas

persistencia

comm

Page 20: HHD – Help the HelpDesk Análise e Projeto

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>>

Page 21: HHD – Help the HelpDesk Análise e Projeto

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>>

Page 22: HHD – Help the HelpDesk Análise e Projeto

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>>

Page 23: HHD – Help the HelpDesk Análise e Projeto

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>>

Page 24: HHD – Help the HelpDesk Análise e Projeto

Projeto de Arquitetura

Subsistema de comunicação por e-mail Diagrama de classesISubsistemaComunicacaoEmail

enviarEmail()

MensagemEmail

origem : Stringdestinatario : Stringdescricao : String

ProtocoloComunicacaoEmail

enviarEmail()

FachadaComunicacaoEmail<<singleton>>

Page 25: HHD – Help the HelpDesk Análise e Projeto

Projeto de Arquitetura

Pacote estatísticas

Estatistica

totalSolicitacoesAtendidas : IntegertempoAtendimentoCompleto : IntegertempoEmFilaDeEspera : IntegertempoEmAtendimento

IRepositorioEstatisticas

CadastroEstatisticas

cadastrarEstatistica() 1

0..*

1

0..*

RepositorioEstatisticasBDR(from persistencia)

Page 26: HHD – Help the HelpDesk Análise e Projeto

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)

Page 27: HHD – Help the HelpDesk Análise e Projeto

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

Page 28: HHD – Help the HelpDesk Análise e Projeto

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>>

Page 29: HHD – Help the HelpDesk Análise e Projeto

Padrões de Projeto

Padrões Estruturais Façade PDC

Padrões Criacionais Singleton Abstract Factory Factory Method

Page 30: HHD – Help the HelpDesk Análise e Projeto

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>>

Page 31: HHD – Help the HelpDesk Análise e Projeto

Dúvidas???


Top Related