You are on page 1of 15

FACULDADE VITORIANA DE TECNOLOGIA BACHARELADO EM SISTEMAS DE INFORMAO

Roberto de Andrade Guimares Cassius Felipe Silva Filipe Lima Leonardo Coutinho Neves Marcelo Verssimo

Sistema de Controle de Veculo Policial Especificao de Requisito de Software Verso 1.0.0

Vitria 2011

Roberto de Andrade Guimares Cassius Felipe Silva Filipe Lima Leonardo Coutinho Neves Marcelo Verssimo

Sistema de Controle de Veculo Policial Especificao de Requisito de Software Verso 1.0.0

Trabalho apresentado disciplina de Engenharia de Software do Curso de Bacharelado em Sistemas de Informao da Faculdade Vitoriana de Tecnologia como requisito para avaliao. Orientador: Prof. Eraldo Souza Rocha

Vitria 2011

Sumrio
1. Introduo_______________________________________________________________ 4 1.1. Finalidade ___________________________________________________________ 4 1.2. Escopo _____________________________________________________________ 4 1.3. Definies, acrnimos e abreviaes ______________________________________ 4 2. Descrio geral ___________________________________________________________ 4 3. Requisitos especficos _____________________________________________________ 4 3.1. Requisito funcional ____________________________________________________ 4 3.2. Requisitos de usabilidade_______________________________________________ 5 3.3. Requisitos de confiabilidade _____________________________________________ 5 3.4. Requisitos de desempenho _____________________________________________ 5 3.5. Requisitos de suportabilidade ___________________________________________ 6 3.6. Restries de desenho _________________________________________________ 6 3.7. Requisitos de interfaces ________________________________________________ 6 3.7.1. Interface de hardware______________________________________________ 6 3.7.2. Interface de usurio _______________________________________________ 6 3.7.3. Interface de comunicao __________________________________________ 6 3.8. Requisitos de licenciamento _____________________________________________ 6 4. Diagramas ______________________________________________________________ 7 4.1. Diagramas de Classe ____________________________________________________ 7 4.1.1. CD-01 Modelo de Domnio ________________________________________ 7 4.1.2. CD-02 Servios e Repositrios _____________________________________ 8 4.2. Diagramas de Estados ___________________________________________________ 9 4.2.1. ST-01 Cadastro de Tipo de Viatura__________________________________ 9 4.2.2. ST-02 - Cadastro de Viaturas _______________________________________ 10 4.2.3. ST-03 Cadastro de Operadores ___________________________________ 11 4.2.4. ST-04 Gerenciar Incidente _______________________________________ 12 4.3. Modelo de Dados ____________________________________________________ 13 5. Dicionrio de Dados ______________________________________________________ 14

1. Introduo
1.1. Finalidade

Registrar os chamados de ocorrncias policiais.

1.2.

Escopo

Realizar o registro das ocorrncias policiais; auxiliar na classificao correta da ocorrncia; encaminhar apropriadamente a ocorrncia para a viatura melhor posicionada para atender ocorrncia. As viaturas disponveis devem estar previamente cadastradas no sistema e sua posio dever ser atualizada periodicamente

1.3.

Definies, acrnimos e abreviaes

Incidentes: Qualquer chamado solicitando interveno policial. Ocorrncias: Qualquer interveno policial que evolui para a lavragem e emisso de um Boletim de Ocorrncia.

2. Descrio geral
O produto tem o intuito de permitir que o atendimento dos incidentes policiais seja realizado de forma mais rpida e precisa. A principal funo do sistema registrar e encaminhar apropriadamente os incidentes para viaturas de acordo com critrios pr-definidos. O usurio do sistema um membro do corpo policial propriamente treinado chamado operador central.

3. Requisitos especficos
3.1. Requisito funcional

1. O sistema deve possuir um cadastro de tipos de viaturas para permitir ao operador identificar se a viatura adequada para atender a um determinado incidente. Ele dever permitir gravar descries para o tipo como, por exemplo, ambulncia, furgo, moto, rabeco, etc. 2. O sistema deve possuir um cadastro de viaturas, e dever permitir a o operador efetuar alteraes neste cadastro. O cadastro de viaturas dever conter informaes que permitam ao operador a identificao individual de uma viatura. O tipo de viatura, cdigo de chamada e placa da viatura so informaes obrigatrias no cadastro e so usadas para identificar uma determinada viatura. O tipo de viatura dever ser um dos valores existentes no Cadastro de Tipos de Viaturas. 3. O sistema dever permitir o cadastramento dos seus operadores. O objetivo deste cadastro impedir que pessoas no autorizadas utilizem o sistema. O cadastro dos operadores dever conter o nome do operador, sua matrcula, um nome de usurio, que ser usado para identificar o operador dentro do sistema, e uma senha. 4. O sistema dever permitir o cadastramento de tipos de incidentes. Os tipos de incidentes determinam o tipo de viatura a ser designada para atendimento. Este

5.

6.

7.

8.

cadastro dever possuir uma descrio do tipo como, por exemplo, assalto, homicdio, atropelamento, etc. Alm da descrio, cada tipo de incidente tambm possuir uma classificao: normal, urgncia ou emergncia. Esta classificao ir determinar a prioridade de atendimento do incidente. As emergncias sempre sero os incidentes de maior prioridade seguidos pelas urgncias e normais respectivamente. O sistema dever possuir um cadastro de localidades. Este cadastro dever ser fornecido j contendo algumas localidades, porm os operadores podero efetuar alteraes e novas incluses se necessrio. A localidade dever conter informaes como tipo/nome de logradouro, bairro, cidade. Cada localidade dever conter tambm um indicador informando o seu nvel de risco. Este indicador tem a objetivo de informar ao operador se a localidade em questo apresenta um grau de risco onde aconselhvel o envio de mais de uma viatura. Caso um incidente demande a necessidade do envolvimento de outros servios de emergncia tais como bombeiros ou defesa civil, entre outros, o sistema dever possuir um cadastro com os nmeros de telefones que permitam o contato imediato com estes servios. O sistema dever permitir ao operador inserir, alterar e visualizar as informaes de um determinado incidente. O incidente dever possuir o maior nmero de informaes possvel, facilitando o trabalho do operador ao designar uma viatura para o seu atendimento, porm dever ser flexvel o suficiente para permitir que um incidente seja registrado com informaes apenas parciais. Entre as informaes necessrias ao cadastro do incidente temos o tipo do incidente, a localizao do incidente, as viaturas designadas, e um local para o preenchimento de informaes livres, tais como ponto de referncia, situao da vtima, etc. Alm destas informaes, para questes de controle interno do prprio sistema o registro do incidente tambm dever conter um nmero de identificao nico, a identificao do operador, data/hora de abertura e fechamento do incidente, e a situao do incidente que podem ser: aberto, fechado, em andamento, encaminhado para outro servio ou cancelado. O sistema dever ser capaz de visualizar num mapa o posicionamento atual das viaturas que esto disponveis. Este mapa dever permitir que o operador navegue por ele indo diretamente a um determinado ponto usando como informao o cdigo de chamada da viatura ou a localizao de um incidente.

3.2.

Requisitos de usabilidade

1. A posio das viaturas dever ser atualizada automaticamente a cada 60 segundos. 2. Sero necessrias 4 horas de treinamento para os usurios. 3. O cadastro de incidente deve levar no mximo 3 minutos.

3.3.

Requisitos de confiabilidade

1. O sistema dever estar disponvel durante 99% do ano. 2. Os aparelhos de GPS necessitam ter preciso mnima de 10 metros.

3.4.

Requisitos de desempenho

1. A transmisso dos dados do GPS dever ser em pacotes de at 32KB. 2. Tempo de resposta das telas online deve ser de no mximo 3 segundos.

3.5.

Requisitos de suportabilidade

1. Sistema operacional de servidor Windows; 2. Banco de dados SQL Server 2008 R2;

3.6.

Restries de desenho

1. Linguagem de programao C# .NET; 2. Utilizar arquitetura trs camadas MVC;

3.7.

Requisitos de interfaces

3.7.1. Interface de hardware 1. A comunicao dos aparelhos de GPS com o sistema dever ser feita atravs de web service dedicado a esta funo. 3.7.2. Interface de usurio 1. Interface dever utilizar padro WEB HTML 4 ou superior. 3.7.3. Interface de comunicao 1. A comunicao do sistema ser realizada atravs da internet pelos protocolos HTTP via TCP/IP;

3.8.

Requisitos de licenciamento

O software proprietrio e de propriedade do cliente, no cabendo ao desenvolvedor qualquer usufruto.

4. Diagramas
4.1. Diagramas de Classe
4.1.1. CD-01 Modelo de Domnio
Operador <<Enum>> SituacaoViatura + svDisponivel : EnumConstant + svEmManutencao : EnumConstant + svForaOperacao : EnumConstant Coordenada + <<Property>> X : double + <<Property>> Y : double + + + + <<Property>> <<Property>> <<Property>> <<Property>> Matricula Nome Login Senha : : : : int string String string

1..1 Situacao

1..1 Localizacao

1..1 Localizacao

1..1 Responsavel

1..1 1..1 Viatura + <<Property>> Codigo : int + <<Property>> CodigoCham ada : String + <<Property>> Placa : String 0..* Incidentes Incidente 0..* + + + + 0..* Incidentes + + + + <<Property>> <<Property>> <<Property>> <<Property>> Codigo DataAbertura DataEncerramento Observacoes : : : : int DateT ime DateT ime String : : : : System.TimeSpan void void void 1..1

1..1

1..1 T ipo TipoViatura + <<Property>> Codigo : int + <<Property>> Descricao : String

TempoAtendimento () FinalizarAtendimento () EnviarViaturas (List<Viatura> viaturas) EncaminharIncidente (ServicoAuxiliar servico) 0..* Incidentes 0..*

1..1

0..* ViaturasCom pativeis

1..1 LocalIncidente Localidade + + + + + + <<Property>> <<Property>> <<Property>> <<Property>> <<Property>> <<Property>> Codigo PontoReferencia Bairro T ipoLogradouro Municipio Logradouro : : : : : : int String String string String String 0..* Viatura ViaturaIncidente + viatura : Viatura + data : DateT ime

1..* TiposIncidente

1..1 Tipo

T ipoIncidente + <<Property>> Codigo : int + <<Property>> Descricao : String

0..* 1..1 ServicoAuxiliar + <<Property>> Codigo : int + <<Property>> Nome : string + <<Property>> T elefones : string[]

0..*

1..1 Risco <<Enum>> NivelRisco + nrBaixo : EnumConstant + nrNormal : EnumConstant + nrAlto : EnumConstant

1..1 Situacao <<Enum>> SituacaoIncidente + + + + + siAberto siFechado siCancelado siEmAndamento siEncaminhado : : : : : EnumConstant EnumConstant EnumConstant EnumConstant EnumConstant

1..1 Classe <<Enum>> ClasseIncidente + ciUrgencia : EnumConstant + ciEmergencia : EnumConstant + ciNormal : EnumConstant

Figura 1 - CD-01 - Modelo de Domnio

4.1.2.

CD-02 Servios e Repositrios


<T> RepositorioBase {abstract} # ConexaoDB : IConexaoBancoDados # ORM : IObj ectRelationalMapper + + + + ObterPorId (int id) : T Salvar (T o) : voi d Exclui r (T o) : voi d Listar () : List<T> Obs.: Os detalhes sobre o a conexo e acesso ao banco de dados, e o mapeamento obj eto/relacional foram omi tidos com o intuito de simplificao do modelo.

TipoInci denteRepositorio Inci denteReposi torio + + + + ObterPorId (int id) Excl uir (TipoIncidente o) Salvar (TipoIncidente o) Listar () : : : : Ti poInci dente void void List<Ti poInci dente>

+ + + + + + +

ObterPorId (int id) Exclui r (Incidente o) Salvar (Incidente o) Listar () ListarAbertos () ListarEncaminhados () ListarAtendi dos ()

: : : : : : :

Incidente void void List<Incidente> List<Incidente> List<Incidente> List<Incidente>

ViaturaRepositorio

OperadorReposi tori o

+ + + +

ObterPorId (i nt id) Sal var (Operador o) Excluir (Operador o) Listar ()

: : : :

Operador void void List<Operador>

+ + + + +

ObterPorId (i nt i d) Sal var (Viatura o) Excluir (Vi atura o) Li star () Li starPorLocali dade (Local idade l)

: : : : :

Viatura voi d voi d Li st<Viatura> Li st<Viatura>

ServicoAuxilizarRepositorio Ti poVi aturaRepositori o + + + + ObterPorId (int id) Salvar (ServicoAuxil iar o) Exclui r (ServicoAuxili ar o) Listar () : : : : ServicoAuxiliar voi d voi d Li st<ServicoAuxiliar>

+ + + +

ObterPorId (int i d) Salvar (Ti poVi atura o) Exclui r (TipoVi atura o) Li star ()

: : : :

TipoViatura voi d voi d Li st<TipoViatura>

Locali dadeReposi tori o

+ + + + + +

ObterPorId (int i d) Salvar (int o) Excluir (i nt o) Li star () Li starPorBairro (String municipio, string bai rro) Li starPorLogradouro (String locali dade, String bai rro, Stri ng logradouro)

: : : : : :

Localidade void void List<Localidade> List<Localidade> List<Localidade>

GPSService

SegurancaService

+ Atual izarPosi caoViaturas (List<Viatura> vi aturas) : voi d

+ AutenticarOperador (Operador op) : bool

MapaServi ce

+ MostrarViaturas (List<Viatura> viaturas) : void

As classes GPSService e MapaService encapsulam as chamadas para os servios que recebem o posi cionamento das viaturas via GPS e responsvel por exibi r a posio das vi aturas em um mapa.

Figura 2 - CD-02 - Servios e Repositrios

4.2. Diagramas de Estados


4.2.1. ST-01 Cadastro de Tipo de Viatura

Em Espera Selecionar

Defini ndo T ipo Escolhido

Comando Comando Processando Comando entry / opcao Editar Novo Possui Dependencia Carregando Tipo Edi tar

Excluir

Verifi cando Dependencias

Carregando Editor

Di gitando Valores entry / codigo entry / descricao Invali do Salvar Cancelar Aguardando Confi rmacao Cancelar entry / opcao Confirmar

Val idando T ipo

Exclui ndo Salvando T ipo entry / codi go entry / descricao do / Salvar entry / codigo do / Exclui r

Figura 3 - ST-01 - Cadastro de Tipo de Viatura

4.2.2.

ST-02 - Cadastro de Viaturas

Em Espera

Localizar

Localizando Viatura entry / codigo Comando

Comando

Processando Comando entry / opcao

Excluir

Verificando Dependencias

Editar Novo Possui Dependencia Carregando Editor Carregando Viatura

Digitando Valores Viatura entry / entry / entry / entry / codigo codigo_chamada placa TipoViatura Cancelar

Salvar Invalido Validando Viatura Confirmar Excluindo Salvando entry / codigo entry / codigo_chamada entry / placa entry / TipoViatura do / Salvar entry / codigo do / Excluir Cancelar Aguardando Confirmacao entry / opcao

Figura 4 - ST-02 - Cadastro de Viaturas

4.2.3.

ST-03 Cadastro de Operadores

Em Espera

Comando Excluir Editar Editar

Processando Comando entry / opcao Novo

Localizando Operador entry / matricula do / ObterPorId Excluir

Carregando Editor Verificando Dependencias

Digitando Dados Operador entry entry entry entry / / / / matricula nome login senha

Possui Dependencia

Cancelar Cancelar

Aguardando Confirmacao entry / opcao Confirmar

Invalido

Salvar

Validando Operador

Excluindo entry / codigo do / Excluir

Salvando Operador entry / matricula entry / nome entry / login entry / senha do / Salvar

Figura 5 - ST-03 - Cadastro de Operadores

4.2.4.

ST-04 Gerenciar Incidente


Recebendo Coordenadas entry / coordenada entry / placa

Em Espera

Atualizar Posicao Atualizando Posicao Viaturas entry / coordenada

Novo Incidente Redesenhando Mapa Processando Comando entry / opcao

Carregando Editor

Digitando Dados Incidente entry entry entry entry / dataabertura / localidade / situacao / observacao Cancelar Selecionando Viaturas Encaminhando Incidente Encaminhar Incidente Processando Encaminhamento entry / destinatario

Salvar Invalido Selecionando Servico Validando Incidente Salvar

Salvando Incidente entry / incidente do / Salvar

Figura 6 - ST-04 - Gerenciar Incidente

4.3.

Modelo de Dados

4.3.1. PDM-01 - Modelo Fsico de Dados


Viaturas cod_viatura cod_tipoviatura cod_chamada placa cod_situacao integer <pk> integer <fk> varchar(10) varchar(7) tinyint Operadores mat_operador nome_operador login senha int <pk> varchar(50) varchar(15) varchar(25) Responsavel

FK_VIATURAS_VIATURAT I_VIAT URAT FK_VIATURAI_REFERENCE_VIATURAS

Tipo ViaturaTipos cod_tipoviatura int <pk> desc_tipoviatura varchar(30)

FK_INCIDENT_RESPONSAV_OPERADOR ViaturasCompativeis ViaturaIncidente FK_TIPOVIAT _T IPOVIATU_VIATURAT cod_incidente cod_viatura data cod_viaturaincidente int <fk1> integer <fk2> datetime integer <pk> Viatura Incidentes FK_VIATURAI_VIATURAIN_INCIDENT Incidentes cod_incidente cod_localidade cod_serv_aux mat_operador cod_tipoincidente dthr_abertura dthr_encerramento obs cod_situacao int int int int int datetime datetime text smallint <pk> <fk2> <fk4> <fk3> <fk1>

TipoViaturaIncidente cod_tipoviatura int <pk,fk1> cod_tipoincidente int <pk,fk2>

FK_T IPOVIAT_TIPOVIAT U_INCIDENT

Incidentes

T iposIncidente IncidenteT ipos cod_tipoincidente int <pk> desc_tipoincidente varchar(20) cod_classeincidente smallint

FK_INCIDENT_INCIDENTE_INCIDENT

Incidentes Tipo

FK_INCIDENT _INCIDENT E_SERVICOS FK_INCIDENT _LOCALIDAD_LOCALIDA

LocalIncidente ServicosAuxiliares cod_serv_aux int <pk> nm_serv_aux varchar(15) num_telefones varchar(10) Localidades cod_localidade pto_referencia nm_bairro tp_logradouro nm_municipio nm_logradouro cod_nivelrisco int <pk> text varchar(30) varchar(3) varchar(30) varchar(30) smallint

Figura 7 - PDM-01 - Modelo Fsico de Dados

5. Dicionrio de Dados
Viaturas Campo cod_viatura cod_tipoviatura cod_chamada placa cod_situacao

Tipo Integer Integer Varchar(10) Varchar(7) Tinyint

PK X

FK

NN X X X X X

AI X

Descrio Cdigo de Identificao da Viatura para o Sistema Cdigo do Tipo de Viatura Cdigo de chamada rdio da viatura Placa da Viatura Cdigo de indicao da situao da viatura

Operadores Campo mat_operador nome_operador login senha Incidentes Campo cod_incidente cod_localidade mat_operador

Tipo Integer Varchar(50) Varchar(15) Varchar(25)

PK X

FK

NN X X X X

AI X

Descrio Matrcula do Operador Nome completo do Operador Nome de usurio do Operador Senha do Operador

Tipo Integer Integer Integer

PK X

FK

NN X X X

AI X

X X

cod_tipoincidente dthr_abertura dthr_encerramento obs cod_situacao

Integer Datetime Datetime Text Smallint

X X

Descrio Cdigo de Identificao do Incidente Cdigo de Identificao da Localidade do Incidente Matricula do Operador responsvel pelo registro e atendimento do incidente Cdigo que identifica o Tipo de Incidente Data/Hora de registro do Incidente Data/Hora de encerramento do Incidente Observaes pertinentes ao incidente Cdigo da situao atual do Incidente. 1 Aberto 2 Fechado 3 Cancelado 4 Em Andamento 5 Encaminhado a outro Servio

ViaturaTipos Campo cod_tipoviatura desc_tipoviatura

Tipo Integer Varchar(30)

PK X

FK

NN X X

AI X

Descrio Cdigo do Tipo de Viatura Descrio do Tipo de Viatura

TipoViaturaIncidente Campo Tipo cod_tipoviatura Integer cod_tipoincidente Integer IncidenteTipos Campo cod_tipoincidente desc_tipoincidente cod_classeincidente

PK X X

FK X X

NN X X

AI

Descrio Cdigo do Tipo de Viatura Cdigo do Tipo de Incidente

Tipo Integer Varchar(20) Smallint

PK X

FK

NN X X X

AI X

Descrio Cdigo do Tipo de Incidente Descrio do Tipo de Incidente Cdigo da Classe de Incidente 1 Urgncia 2 - Emergncia 3 - Normal

ViaturaIncidente Campo cod_incidente cod_viatura data cod_viaturaincidente ServicosAuxiliares Campo cod_serv_aux nm_serv_aux num_telefone

Tipo Integer Integer Datetime Integer

PK

FK X X

NN X X X X

AI

Descrio Cdigo do Incidente Cdigo da Viatura Data de Envio da Viatura Cdigo Viatura Incidente

Tipo Integer Varchar(15) Varchar(10)

PK X

FK

NN X X X

AI X

Descrio Cdigo do Servio Auxiliar Nome do Servio Auxiliar Nmero de Telefone do Servio Auxiliar

Localidades Campo cod_localidade pto_referencia nm_bairro tp_logradouro nm_municipio nm_logradouro cod_nivelrisco

Tipo Integer Text Varchar(30) Varchar(3) Varchar(30) Varchar(30) Smallint

PK X

FK

NN X X X X X X

AI X

Descrio Cdigo da Localidade Ponto de Referncia Nome do Bairro Tipo de Logradouro (Rua, Av, Bco, etc..) Nome do Municpio Nome do Logradouro Cdigo indicador do nvel de risco da localidade. 1 Risco Baixo 2 Normal 3 Alto Risco

PK Chave Primria FK Chave Estrangeira NN No Nulo AI Auto-Incremento