quinta-feira, 7 de abril de 2011

Sistema de OS - Documento Descritivo


CLIENTE
R. Com.

PROJETISTAS
Adomiran Bastos, Denivan Campos e Marcos Dias.

COLABORADORES
Funcionários

DESCRIÇÃO DO CONTEXTO
O Insight OS fará controle de entradas e saídas de aparelhos de telefonia celular para assistência técnica dentro e fora de período de garantia. Sendo assim, completamente aplicável tanto em assistências autorizadas quanto em lojas convencionais (franquias).

O sistema apresentará interface simples, e por isso, poderá ser operado pelos próprios vendedores, sem a necessidade de conhecimentos específicos em informática.

Deverão ser armazenados os dados do produto, tais como descrição, valor, data de venda, número de série e IMEI; dados de contato do cliente e todas as movimentações ocorridas desde a abertura da ordem de serviço, bem como os do fabricante (em caso de ativação de garantia).

A geração de relatórios deverá ser frequente, visando oferecer ao cliente uma maior segurança em relação a todo o andamento e previsão de entrega do produto. Estes mesmos relatórios poderão ser repassados ao cliente por e-mail ou SMS.


PRINCIPAIS ATORES
  1. Clientes;
  2. Funcionários;
  3. Fabricante.

PRINCIPAIS ATIVIDADES/REQUISITOS
  • Registrar entrada de equipamentos;
  • Registrar saída de equipamentos;
  • Gerar relatórios de andamento;
  • Informar clientes;
  • Gerenciar ordens de serviço.

DIAGRAMA DE CASO DE USO


ESPECIFICAÇÃO DE USO DE CASO

UC001 - Abrir Ordem de Serviço
Breve Descrição: Este caso de uso cadastra o aparelho que necessita de assistência técnica, junto aos dados do cliente.
Pré-condições: O aparelho deve apresentar defeito.
Atores Envolvidos: Clientes, Funcionários.
Cenário Principal:
1. O funcionário informa seu login e senha. O login e a senha poderão ser compostos e/ou números, ambos contendo no mínimo 6 caracteres.
2. O funcionário solicita do cliente, para inserção, os seguintes dados: nome completo, CPF, endereço completo, telefone para contato e e-mail.
3. O funcionário insere os dados do aparelho: marca, modelo, número de série, IMEI, operadora, número da nota fiscal, data de compra, prazo para acionamento de garantia.
4. Ao confirmar os dados, o sistema gera um relatório com número da ordem de serviço e previsão de conclusão.
Cenário Alternativo:
4.1. Caso o prazo tenha expirado, o cliente é informado, e se aceito, é ativado o serviço de assistência técnica local.
4.2. Caso o prazo tenha expirado e o cliente não aceite assistência técnica local, a ordem de serviço é automaticamente cancelada.
4.3. Caso o prazo para acionamento da garantia tenha expirado e o estabelecimento não ofereça serviço de assistência técnica local, a ordem de serviço é automaticamente cancelada.
4.4. Caso o aparelho esteja em período de troca imediata, é gerado o número da ordem de serviço, que logo após é automaticamente salva e encerrada.

UC002 - Fechar Ordem de Serviço
Breve Descrição: Este caso de uso encerra a ordem de serviço, porém, deixa suas movimentações, cadastro do cliente e do aparelho registrados.
Pré-condições: O defeito do aparelho deve ter sido solucionado.
Atores Envolvidos: Clientes, Funcionários.
Cenário Principal:
1. O funcionário informa seu login e senha. O login e a senha poderão ser compostos e/ou números, ambos contendo no mínimo 6 caracteres.
2. O funcionário insere o número da ordem de serviço.
3. O funcionário informa se o problema foi solucionado ou não.
4. O funcionário informa o tipo de solução utilizado: assistência técnica local, assistência técnica do fabricante ou troca imediata.
5. O funcionário salva a ordem de serviço confirmando seu fechamento.


WIREFRAME




DIAGRAMA DE CLASSES


DIAGRAMA DE SEQUÊNCIA




DIAGRAMA DE COLABORAÇÃO


MAPA DO SISTEMA
LEIAUTE


 

TECNOLOGIAS PARA IMPLEMENTAÇÃO 

Ambiente/Plataforma do Sistema: Web. É um ambiente bastante acessível e customizável. Não requer hardware muito potente.
Linguagem de Programação: PHP. É livre, tem sintaxe simples, similar a C.
Sistema Gerenciador de Banco de Dados: MySQL. É livre, bastante popular e escalável.
IDE: Eclipse para desenvolvimento PHP. É livre; tem fácil integração com Apache, JQuery, Java; além de ser usado profissionalmente por várias empresas do país.
Restrições em Sistemas Operacionais: Não há restrições em sistemas Windows, Linux ou MAC, já que são capazes de rodar tanto MySQL quanto o servidor PHP necessário.


MODELO DE INFRAESTRUTURA


MODELO ENTIDADE-RELACIONAMENTO


DIAGRAMA ENTIDADE-RELACIONAMENTO
SQL


-- Criação do Esquema `INSIGHT`

CREATE SCHEMA `INSIGHT`;
USE `INSIGHT`;

-- Criação da Tabela `INSIGHT`.`CLIENTE`

CREATE  TABLE IF NOT EXISTS `INSIGHT`.`CLIENTE` (
  `CPF` INT(11) NOT NULL ,
  `NOME` VARCHAR(100) NOT NULL ,
  `ENDERECO` VARCHAR(45) NOT NULL ,
  `NUMERO` VARCHAR(5) NOT NULL ,
  `BAIRRO` VARCHAR(45) NOT NULL ,
  `CEP` VARCHAR(8) NULL ,
  `CIDADE` VARCHAR(50) NOT NULL ,
  `ESTADO` VARCHAR(2) NOT NULL ,
  PRIMARY KEY (`CPF`) )

-- Criação da Tabela `INSIGHT`.`FABRICANTE`

CREATE  TABLE IF NOT EXISTS `INSIGHT`.`FABRICANTE` (
  `CNPJ` INT NOT NULL AUTO_INCREMENT ,
  `NOME` VARCHAR(45) NOT NULL ,
  `ENDERECO` VARCHAR(45) NOT NULL ,
  `NUMERO` VARCHAR(45) NOT NULL ,
  `BAIRRO` VARCHAR(45) NOT NULL ,
  `CEP` VARCHAR(8) NOT NULL ,
  `CIDADE` VARCHAR(45) NOT NULL ,
  `ESTADO` VARCHAR(2) NOT NULL ,
  PRIMARY KEY (`CNPJ`) )

-- Criação da Tabela `INSIGHT`.`APARELHO`

CREATE  TABLE IF NOT EXISTS `INSIGHT`.`APARELHO` (
  `IMEI` INT NOT NULL ,
  `MODELO` VARCHAR(45) NOT NULL ,
  `OPERADORA` VARCHAR(45),
  `SERIAL` VARCHAR(45) NOT NULL ,
  `NOTA_FISCAL` VARCHAR(45) NOT NULL ,
  `DATA_COMPRA` DATE NOT NULL ,
  `DATA_GARANTIA` DATE NOT NULL ,
  `CLIENTE_CPF` INT(11) NOT NULL ,
  `FABRICANTE_ID` INT NOT NULL ,
  PRIMARY KEY (`IMEI`) ,
  INDEX `fk_APARELHO_CLIENTE` (`CLIENTE_CPF` ASC) ,
  INDEX `fk_APARELHO_FABRICANTE1` (`FABRICANTE_ID` ASC) ,
  CONSTRAINT `fk_APARELHO_CLIENTE`
    FOREIGN KEY (`CLIENTE_CPF` )
    REFERENCES `INSIGHT`.`CLIENTE` (`CPF` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_APARELHO_FABRICANTE1`
    FOREIGN KEY (`FABRICANTE_ID` )
    REFERENCES `INSIGHT`.`FABRICANTE` (`CNPJ` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)

-- Criação da Tabela `INSIGHT`.`FUNCIONARIO`

CREATE  TABLE IF NOT EXISTS `INSIGHT`.`FUNCIONARIO` (
  `CPF` INT NOT NULL ,
  `NOME` VARCHAR(45) NOT NULL ,
  `LOGIN` VARCHAR(12) NOT NULL ,
  `SENHA` VARCHAR(8) NOT NULL ,
  `ENDERECO` VARCHAR(45) NOT NULL ,
  `NUMERO` VARCHAR(45) NOT NULL ,
  `BAIRRO` VARCHAR(45) NOT NULL ,
  `CEP` VARCHAR(8) NOT NULL ,
  `CIDADE` VARCHAR(45) NOT NULL ,
  `ESTADO` VARCHAR(2) NOT NULL ,
  PRIMARY KEY (`CPF`) )

-- Criação da Tabela `INSIGHT`.`OS`

CREATE  TABLE IF NOT EXISTS `INSIGHT`.`OS` (
  `NUMERO` INT NOT NULL AUTO_INCREMENT ,
  `SITUACAO` VARCHAR(45) NOT NULL ,
  `FUNCIONARIO_CPF` INT NOT NULL ,
  `APARELHO_IMEI` INT NOT NULL ,
  PRIMARY KEY (`NUMERO`) ,
  INDEX `fk_OS_FUNCIONARIO1` (`FUNCIONARIO_CPF` ASC) ,
  INDEX `fk_OS_APARELHO1` (`APARELHO_IMEI` ASC) ,
  CONSTRAINT `fk_OS_FUNCIONARIO1`
    FOREIGN KEY (`FUNCIONARIO_CPF` )
    REFERENCES `INSIGHT`.`FUNCIONARIO` (`CPF` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_OS_APARELHO1`
    FOREIGN KEY (`APARELHO_IMEI` )
    REFERENCES `INSIGHT`.`APARELHO` (`IMEI` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)


-- Cadastro de Funcionário

INSERT INTO FUNCIONARIO VALUES('75084093020','DENIVAN CAMPOS','DHENNYA10','12345678','R. TOCANTINS','360','CENTRO','77600000','PARAÍSO DO TOCANTINS','TO');

-- Cadastro de Fabricante

INSERT INTO FABRICANTE VALUES('80890975000102','MOTOROLA','AV. MARECHAL DEODORO','4500','CENTRO','64500150','SÃO PAULO','SP');

-- Cadastro de Cliente

INSERT INTO CLIENTE VALUES('00800700621','MARCOS DIAS DA CONCEIÇÃO','AV. BERNARDO SAYÃO','250','CENTRO','7760000','PARAÍSO DO TOCANTINS','TO');

-- Cadastro de Aparelho

INSERT INTO APARELHO VALUES('353264022799360','XOOM','CLARO','0056888633390','0003778','2010-07-20','2011-07-20','00800700621','80890975000102');

-- Cadastro de Ordem de Serviço


INSERT INTO OS VALUES ('','ASSISTÊNCIA_FABRICANTE', 2011-06-01T14:25:10
'75084093020','353264022799360');

-- Atualização de Dados do Funcionário

UPDATE FUNCIONARIO SET ENDERECO='AV. CASTELO BRANCO', NUMERO='500' WHERE CPF='75084093020';

-- Atualização de Dados do Cliente

UPDATE CLIENTE SET ENDERECO='AV. CASTELO BRANCO', NUMERO='500' WHERE CPF='00800700621';





TESTES DE SISTEMA