21
Monografia Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18 de junho de 2009 Sum´ ario 1 Cap´ ıtulo1 2 1.1 Objeto ................................. 2 1.2 Objetivo Geral ............................ 2 1.3 Objetivo Espec´ ıfico .......................... 2 1.4 Justificativa .............................. 2 1.5 Metodologia Empregada ....................... 2 2 Cap´ ıtulo 2 2 2.1 Descri¸c˜ ao informal do problema ................... 2 2.2 Diagramas de Fluxo de Dados (DFD) ............... 3 2.2.1 DFD n´ ıvel 0 .......................... 3 2.3 DFD n´ ıvel 1 com descri¸ ao informal de cada processo ...... 3 3 Cap´ ıtulo 3 10 3.1 Especifica¸c˜ ao do sistema desenvolvimento ............. 10 3.2 Especifica¸c˜ ao Formal ......................... 10 3.2.1 Tipos ............................. 10 3.2.2 Sistema ............................ 11 3.2.3 Propriedades e Fun¸ oes pr´ e-definidas ............ 11 3.2.4 InitSistema .......................... 12 3.2.5 Especifica¸c˜ ao Formal das Opera¸c˜ oes ............ 12 3.3 Diagrama de Classes ......................... 18 4 Cap´ ıtulo 4 18 4.1 Especifica¸c˜ ao formal e c´ odigo fonte ................. 18 4.2 Resultados atingidos: ........................ 20 5 Cap´ ıtulo 5 21 5.1 Conclus˜ ao ............................... 21 5.2 Referˆ encias .............................. 21 6 Anexos 21 1

Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

Embed Size (px)

Citation preview

Page 1: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

Monografia Projeto Integrado

Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva

18 de junho de 2009

Sumario

1 Capıtulo1 21.1 Objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Objetivo Especıfico . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.5 Metodologia Empregada . . . . . . . . . . . . . . . . . . . . . . . 2

2 Capıtulo 2 22.1 Descricao informal do problema . . . . . . . . . . . . . . . . . . . 22.2 Diagramas de Fluxo de Dados (DFD) . . . . . . . . . . . . . . . 3

2.2.1 DFD nıvel 0 . . . . . . . . . . . . . . . . . . . . . . . . . . 32.3 DFD nıvel 1 com descricao informal de cada processo . . . . . . 3

3 Capıtulo 3 103.1 Especificacao do sistema desenvolvimento . . . . . . . . . . . . . 103.2 Especificacao Formal . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2.1 Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2.2 Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2.3 Propriedades e Funcoes pre-definidas . . . . . . . . . . . . 113.2.4 InitSistema . . . . . . . . . . . . . . . . . . . . . . . . . . 123.2.5 Especificacao Formal das Operacoes . . . . . . . . . . . . 12

3.3 Diagrama de Classes . . . . . . . . . . . . . . . . . . . . . . . . . 18

4 Capıtulo 4 184.1 Especificacao formal e codigo fonte . . . . . . . . . . . . . . . . . 184.2 Resultados atingidos: . . . . . . . . . . . . . . . . . . . . . . . . 20

5 Capıtulo 5 215.1 Conclusao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.2 Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

6 Anexos 21

1

Page 2: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

1 Capıtulo1

1.1 Objeto

Sistema de logıstica e distribuicao de uma empresa varejista, gerenciador delojas integradas.

1.2 Objetivo Geral

Este trabalho tem por objetivo apresentar um sistema que gerencia e faz alogıstica de lojas integradas sendo uma matriz e suas filiais. Por meio de consoleou interface o usuario podera gerenciar os dados que a empresa possui.

1.3 Objetivo Especıfico

A especificidade do sistema e integrar a matriz e suas filiais, para que aquelatenha controle sobre alguns dados contidos no subsistema de cada filial.

A matriz e encarregada dos principais processos do sistema. Atende asrequisicoes feitas pelas filiais, tem controle sobre o seu estoque e os demaispodendo remanejar produtos assim que necessario. Todas as requisicoes saoenviadas a matriz, nao sendo possıvel uma filial atender a requisicao de outra.

A filial e autonoma para cadastrar seus clientes, criar novos pedidos e valorarsuas mercadorias. Toda movimentacao feita em seu estoque deve ser comunicadaa matriz, pois esta e responsavel pelo controle dos estoques. Porem, ela nao temacesso aos dados do caminhao, dos estoques das demais filiais,

Conclui-se daı que, toda a logıstica do sistema esta centralizada no domınioda matriz.

1.4 Justificativa

Projeto elaborado pela coordenacao do curso Bacharelado em Sistemas de In-formacao para integracao dos conhecimentos obtidos nas materias de fundamen-tos em programacao 1, algoritmos 1, logica para ciencia da computacao e teoriageral de sistemas, durante o primeiro semestre.

1.5 Metodologia Empregada

As informacoes referentes metodologia do sistema foram estudadas na tentativade melhorar a compreensao do domınio e na interacao de lojas integradas sendouma matriz e suas filiais, para obter informacoes as quais melhorem o desempe-nho do negocio da empresa, ou seja, usar um sistema de informacoes.

Para o desenvolvimento do estudo de caso foi utilizado o programa Visio2007da Microsoft Office para a construcao da modelagem dos processos do sistema,

2 Capıtulo 2

2.1 Descricao informal do problema

O Sistema e integrador e tem duas partes que serao integradas: parte do sistemafunciona na filial, apresentando informacoes sobre o estado atual de seu estoque

2

Page 3: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

da filial, valor total dos pedidos em aberto e valor total dos pedidos ja entre-gues. O usuario do programa pode, a qualquer momento criar um novo pedidode compra simulando um cliente no varejo. O pedido deve conter o produto ea quantidade a serem comprados, caso seja necessario para atender um pedidoo usuario deve criar uma requisicao de estoque, ela pode ser criada tambemquando a filial esta com seu estoque em baixa, ou com o estoque zerado, a re-quisicao deve conter o codigo da filial, codigo da requisicao, codigo do produtoe quantidade desejada.As requisicoes sao encaminhadas para a matriz, que compoe a outra parte dessesistema, esta deve verificar a situacao dos caminhoes da empresa, do seu estoquee do estoque das demais filiais e comandar as movimentacoes de produtos. Amatriz deve encaminhar uma resposta de requisicao a filial requerente, infor-mando se a requisicao foi bem sucedida ou nao e qual o prazo de entrega (emhoras). A matriz deve comandar compras para seu estoque central, conforme alogica de negocio. O sistema deve permitir tambem os cadastros para a captacaode informacoes importantes para o funcionamento do mesmo.

2.2 Diagramas de Fluxo de Dados (DFD)

2.2.1 DFD nıvel 0

Figura 1: DFD nıvel 0

2.3 DFD nıvel 1 com descricao informal de cada processo

• Cadastrar Filial: nesta operacao, cadastra-se uma filial no sistema. Sendoos dados de entrada o codigo, a descricao, a localizacao x e y e o tamanhodo estoque da filial. Para que o processo ocorra, a descricao nao pode

3

Page 4: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

estar vazia e os demais dados devem ser maior que zero. O resultado e ainclusao de uma nova filial (com os dados de entrada) no repositorio defiliais.

Figura 2:

• Cadastrar Produto: nesta operacao, cadastram-se produtos no sistema.Sendo os dados de entrada o codigo, a descricao, o preco de compra, opreco de venda e o tamanho do produto. Para que o processo ocorra, adescricao nao pode estar vazia e os demais dados nao devem ser menoresque zero. O codigo de cada produto e unico, o que significa que nao sepode cadastrar o mesmo produto mais de uma vez.O resultado e a inclusao de um novo produto (com os dados de entrada)no repositorio de produtos.

Figura 3:

• Cadastrar Caminhao: nesta operacao, cadastra-se um caminhao no sis-tema. Sendo os dados de entrada a placa, capacidade e velocidade media.Os dados recebidos do usuario devem ser maiores que zero. Nao podendocadastrar um caminhao cuja placa ja existe no sistema.O resultado e a inclusao de um novo caminhao (com os dados de entrada)no repositorio de caminhoes.

Figura 4:

• Cadastrar Clientes: nesta operacao, cadastra-se um cliente no sistema.Sendo os dados de entrada o CPF, o nome e o telefone do cliente. Onome nao pode estar vazio e as demais informacoes fornecidas devem ser

4

Page 5: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

maiores que zero. Para assegurar que nao se cadastre mais de uma vezo mesmo cliente, usa-se o CPF como codigo, nao podendo assim, existircodigos iguais.O resultado e a inclusao de um novo cliente (com os dados de entrada) norepositorio de clientes.

Figura 5:

• Criar Pedido de compra: nesta operacao cria-se um pedido de compra.Sendo os dados de entrada o codigo de sua filial e uma lista de dados dopedido contendo: os codigos dos produtos e suas respectivas quantidades.A lista deve conter os codigos dos produtos e estes devem existir nos dadosdo sistema e as quantidades devem ser maiores que zero.O resultado e a inclusao de um novo pedido (com os dados de entrada) norepositorio de pedidos.

Figura 6: DFD nıvel 0

• Criar Requisicao: nesta operacao cria-se uma requisicao. Sendo os dadosde entrada o codigo da filial, data de emissao e uma lista contendo: oscodigos dos produtos e suas respectivas quantidades.O resultado e a inclusao de uma nova requisicao (com os dados de entrada)no repositorio de requisicoes.

5

Page 6: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

Figura 7: DFD nıvel 0

• Atender Requisicao: nesta operacao atendem-se as requisicoes pendentes.O resultado e o retorno de uma resposta do tipo string que mostra se epossıvel atender aquela requisicao.

• Verificar Disponibilidade Caminhao: nesta operacao verificam-se as dis-ponibilidades dos caminhoes.O resultado da operacao retorna uma lista de caminhoes disponıveis dotipo caminhoes.

• Movimentar Produto: nesta operacao utiliza-se um caminhao disponıvelpara movimentar os produtos da requisicao. Sendo os dados de entrada ocodigo da requisicao e o codigo do caminhao.O resultado e o retorno de uma resposta de dois tipos: requisicao e inteiro,sendo eles respectivamente os dados da requisicao e o tempo para chegar.

6

Page 7: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

Figura 8: DFD nıvel 0

• Abastecer Filial: nesta operacao abastece-se o estoque da filial, recebendoos produtos da requisicao feita por ela. Sendo o dado de entrada o codigoda requisicao. Nao retornando nem um tipo de dado.

7

Page 8: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

Figura 9: DFD nıvel 0

• Abastecer estoque da Matriz: nesta operacao abastece-se o estoque damatriz. Sendo os dados de entrada uma lista de novos produtos contendo:os codigos dos produtos e suas respectivas quantidades.

Figura 10: DFD nıvel 0

• Gerar Consultas Matriz: nesta operacao gera-se consultas a matriz. Sendoo codigo da matriz o dado de entrada.O resultado da operacao e o retorno de um objeto do tipo consultas matriz.

8

Page 9: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

Figura 11:

• Liberar Caminhao: nesta operacao libera-se o caminhao, ou seja, o tempode chegada deste torna-se zero. Sendo o codigo do caminhao o dado deentrada.

Figura 12: DFD nıvel 0

• Gerar Consultas Filial: nesta operacao geram-se consultas as filiais. Sendoo codigo da filial o dado de entrada.Como saıda a operacao retorna um objeto do tipo consultas filial.

9

Page 10: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

Figura 13: DFD nıvel 0

3 Capıtulo 3

3.1 Especificacao do sistema desenvolvimento

A especificacao formal do sistema foi desenvolvida embasada numa pseudo lin-guagem nao publicada que esta disponıvel no moodle do DAINF.Utilizando a metodologia de analise e Projeto apropriada (pseudo-linguagem deespecificacao formal).

3.2 Especificacao Formal

3.2.1 Tipos

• REQUISICAO =<cod req: INTEIRO, cod filial: INTEIRO, data: IN-TEIRO, dadosRequisicao:[DADOS REQUISICAO]>

• DADOS REQUISICAO = <cod prod:INTEIRO, qtdade: INTEIRO >

• FILIAIS= <cod filial: INTEIRO, tam estoque: INTEIRO, localizacaoX:REAL, localizacaoY: REAL, descricao: STRING>

• ESTOQUE FILIAIS =<dados estoque filiais: [DADOS ESTOQUE FILIAL]cod filial: INTEIRO>

• DADOS ESTOQUE FILIAIS =<cod prod: INTEIRO, qtdade: INTEIRO>

• ESTOQUE MATRIZ =<dados estoque matriz: [DADOS ESTOQUE MATRIZ], cod matriz: INTEIRO>

• DADOS ESTOQUE MATRIZ =<cod prod: INTEIRO, qtdade: INTEIRO>

• PRODUTO = <cod prod: INTEIRO, valor compra: REAL, valor venda:REAL, tamanho: INTEIRO, descricao: STRING >

10

Page 11: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

• PEDIDO =<cod ped:INTEIRO,dados pedido:[DADOS PEDIDO]>

• DADOS PEDIDO = <cpf: INTEIRO, cod prod: INTEIRO, qtdade: IN-TEIRO, situacao: LOGICO>

• CAMINHAO =<cod caminhao: STRING, capacidade: INTEIRO, vel media:REAL, tempoDeChegada: INTEIRO>

• CAMINHOES DISPONIVEIS= <cod caminhao: STRING, capacidade:INTEIRO, vel media: REAL>

• CLIENTE = <cpf: INTEIRO, nome: STRING, telefone: INTEIRO>

• CONSULTA MATRIZ=<dados caminhao: CAMINHOES, dados pedido:[DADOS PEDIDO], dados requisicao: [DADOS REQUISICAO], dados produto:PRODUTOS, dados clientes: CLIENTES, dados estoque matriz: ESTO-QUE MATRIZ, dados estoque filiais]: ESTOQUE FILIAL>

• CONSULTA FILIAL =<dados pedido: [DADOS PEDIDO], dados requisicao:[DADOS REQUISICAO], dados produto: PROUTOS, dados clientes: CLI-ENTES, dados estoque filiais]: ESTOQUE FILIAL>

3.2.2 Sistema

requisicoes: P REQUISICOESfiliais: P FILIAISprodutos: P PRODUTOSpedidos: P PEDIDOSestoque matriz: P ESTOQUE MATRIZestoque filiais: P ESTOQUE FILIAIScaminhoes: P CAMINHOESclientes: P CLIENTESconsultas: P CONSULTAS

3.2.3 Propriedades e Funcoes pre-definidas

• <entidade>.<campo>: verifica campo da respectiva entidade.

• <variavel>/∈ dados(<entidade>,<campo>): verdadeiro se a variavel naopertence ao dado campo da entidade, falso em caso contrario.

• dados(<entidade>,<campo>): verdadeiro se a campo pertence entidade,falso em caso contrario.

• novo(entidade!.cod filial, entidades, cod filial): verdadeiro se o valor docampo na variavel e diferente de todos os valores do mesmo campo naentidade. Falso em caso contrario. Usado quando o valor de um campo ecriado por uma operacao.

• obterEntidade(<variavel>): obtem os dados a qual a variavel pertence.

• gerarConsultaEntidade(<variavel>) : obtem os dados referentes a con-sulta de dados de cada entidade.

11

Page 12: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

3.2.4 InitSistema

requisicoes = φfiliais = φprodutos = φpedidos = φestoque filiais = φcaminhoes = φclientes = φconsultas = φ

3.2.5 Especificacao Formal das Operacoes

• Cadastrar Filial∆ Sistemadescricao?: STRINGlocalizacaoX?: REALlocalizacaoY?: REALtam estoque? : INTEIROfilial! : FILIAISPre://a descricao da filial nao e vazia# descricao >0//a descricao nao pode existir no conjunto de filiais antes de ser cadastradadescricao? /∈ dados(filiais, descricao)//a localizacao da filial deve ser maior que zerolocalizacaoX? >0

∧localizacaoY? >0

//o tamanho do estoque da filial e maior que zerotam estoque? >0Pos://descricao contida no cadastro da filial e a mesma dada pelo usuariofilial!.descricao = descricao?//a localizacao X contida no cadastro da filial e a mesma dada pelo usuariofilial!.localizacaoX = localizacaoX?//a localizacao Y contida no cadastro da filial e a mesma dada pelo usuariofilial!.localizacaoY = localizacaoY?//tamanho do estoque contido no cadastro da filial e o mesmo dado pelousuariofilial!.tam estoque = tam estoque?//criar cadastronovo(filial!.cod filial, filiais, cod filial)//a filial cadastrada passa a pertencer ao conjunto de filiaisfilial! ∈ filiais’

• Cadastrar Produto∆ Sistemadescricao? : STRINGpreco compra? : REALpreco venda? : REALtamanho? : INTEIROproduto! : PRODUTO

12

Page 13: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

Pre://a descricao nao e vazia#descricao? >0//a descricao nao pode existir no conjunto de produtos antes de ser ca-dastradadescricao? /∈ dados(produtos, descricao)//o preco de compra do produto e maior que zeropreco compra? >0//o preco de venda do produto e maior que zeropreco venda? >0//o tamanho deve ser maior que zerotamanho? >0Pos://descricao contida no cadastro do produto e a mesma dada pelo usuarioproduto!.descricao = descricao?//o preco de compra do produto e o mesmo dado pelo usuarioproduto!.preco compra = preco compra?//o preco de venda do produto e o mesmo dado pelo usuarioproduto!.preco venda = preco venda?//o tamanho do produto cadastrado e o mesmo dado pelo usuarioproduto!.tamanho = tamanho?//criar cadastronovo(produto!.cod prod, produtos, cod prod)//o produto cadastrado deve pertencer ao conjunto de produtosproduto! ∈ produtos’

• Cadastrar Caminhao∆ Sistemacod caminhao? : STRINGcapacidade? : REALvel media?: REALcaminhao! : CAMINHOESpre://a capacidade do caminhao e maior que zerocapacidade? >0//a descricao da placa(cod caminhao) deve ter 8 caracteres# cod caminhao? = 8//a velocidade media do caminhao e maior que zerovel media >0//caminhao nao pode pertencer ao conjunto de caminhoescod caminhao? /∈ dados(caminhoes, cod caminhao)Pos://o caminhao cadastrado deve pertencer ao conjunto de caminhoescaminhao! ∈ caminhoes’//descricao contida no cadastro do caminhao e a mesma dada pelo usuariocaminhao!.placa = placa?//a capacidade do caminhao contido no cadastro e o mesmo dado pelousuariocaminhao!.capacidade = capacidade?

13

Page 14: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

//criar cadastronovo(caminhao!.placa, caminhoes, placa)

• Cadastrar Clientes∆ Sistemacpf? : INTEIROnome? : STRINGtelefone? :INTEIROcliente! : CLIENTESPre://o numero do cpf e maior que zerocpf? >0//o nome do cliente nao esta vazio# nome? >0//o telefone deve ter pelo menos 8 dıgitos# telefone? >= 8//o CPF do cliente nao existe no conjunto de dados dos clientescpf? /∈ dados(clientes, cpf)Pos://o cliente cadastrado deve pertencer ao conjunto de clientescliente! ∈ clientes’//o cpf contido no cadastro do cliente e o mesmo dado pelo usuariocliente!.cpf = cpf?//o nome contido no cadastro do cliente e o mesmo dado pelo usuariocliente!.nome = nome?//o telefone contido no cadastro do cliente e o mesmo dado pelo usuariocliente!.telefone = telefone?//criar cadastronovo(cliente!.cpf, clientes, cpf)

• Criar Pedido de compra∆ Sistemadados pedido? : DADOS PEDIDOcod filial? : INTEIROpedido! : PEDIDOSPre://a lista nao pode estar vazia# dados pedido? >0//cada produto da lista tem que existir no deposito de produtos∀x.(x ∈ dados pedido? → x.cod prod ∈ dados(Produtos, cod prod))//a quantidade dos produtos na lista deve ser maior que zero∀x (x ∈ dados pedido? → x.quantidade>0)//o codigo da filial existecod filial? ∈ dados(filiais, cod filial)Pos://o pedido feito deve pertencer ao conjunto de pedidospedido! ∈ pedidos’//a lista do pedido feito deve ser igual a lista dada pelo usuariopedido!.dados pedido = dados pedido?

14

Page 15: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

//o codigo da filial que esta no pedido feito deve ser igual ao codigo dadopelo usuariopedido!.cod filial = cod filial?//criacao do novo pedidonovo(pedido!.cod ped, pedidos, cod ped)

• Criar Requisicao

∆ Sistemadados requisicao? = [DADOS REQUISICAO]cod filial? : FILIAISrequisicao!: REQUISICAOPre://cada produto tem que ser valido∀x(x ∈ dados requisicao? → x.cod prod ∈ dados(produtos, cod prod))//a quantidade de cada produto deve ser superior a zero∀x (x ∈ dados requisicao? → x.quantidade >0)//a Filial deve existircod filial? ∈ dados(filiais, cod filial)Pos:// codigo da filial deve ser o mesmo codigo da filial de entradarequisicao!.cod filial = cod filial?//data da requisicao e a data da entradarequisicao!.data = data?//codigo do(s) produto(s) pertencem a requisicaorequisicao!.dadosRequisicao = dadosRequisicao?//gera um codigo para a nova requisicaonovo (requisicao!.cod req, requisicoes, cod req)//a Requisicao passa a fazer parte do conjunto de Requisicoesrequisicao! ∈ requisicoes’

• Atender Requisicao

∆ Sistemacod req? : INTEIROrequisicao! : [DADOS REQUISICAO]resposta! : STRINGPre://a requisicao existecod req? ∈ dados(requisicoes, cod req)//para a requisicao ser atendida, a quantidade dos produtos da requisicaodeve ser menor ou igual ao que tem no estoque da matriz e das filiais∀x.(x ∈ obterRequisicao(cod req?).dadosRequisicao → x.qtdade ≤ esto-queMatriz(estoqueMatriz, x.cod prod) + estoqueFiliais(estoqueFiliais, x.cod prod))Pos://os estoques modificados tem o mesmo valor que o estoque antigo menosa quantidade retirada∀x (x ∈ estoqueMatriz(estoqueMatriz’, x.cod prod) + estoqueFiliais(estoqueFiliais’,

15

Page 16: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

x.cod prod) = estoqueMatriz(estoqueMatriz, x.cod prod) + estoqueFili-ais(estoquesFiliais, x.cod prod) - x.qtdade)//Depois de tudo verificado retorna uma mensagem de e Okresposta! (”OK”)

• Verificar Disponibilidade Caminhao∆ Sistemacaminhoes disponıveis! : CAMINHOESPre:Pos://volta a lista de caminhoes cujos tempos de chegada sao iguais zero(disponıvel)caminhoes disponıveis! = x ∈ caminhoes

∧x.tempoDeChegada = 0

• Movimentar Produto∆ Sistemacod req?: INTEIROcod caminhao?: INTEIROresposta!: [<dados requisicao: REQUISICOES, TempoParaChegar: IN-TEIRO >]dados distancias: [DADOS DISITANCIAS]Pre://a requisicao existecod req? ∈ dados(requisicoes, cod req)//o caminhao disponıvel existecod caminhao? ∈ dados(caminhoes, cod caminhao)Pos://Matriz calcula prazo de entrega dos produtos na filial requerenteresposta!.tempoParaChegar = dados distancias / dados(caminhoes, vel media)//matriz marca caminhao como nao disponıvel e o envia com produtos aserem entreguesdisponıvel(caminhoes, cod caminhao?)

• Abastecer Filial∆ Sistemacod req?: INTEIROPre://o codigo da requisicao existecod req? ∈ dados(requisicoes, cod req)Pos://o estoque da filial, depois de receber os produtos, deve ser igual ao es-toque anterior mais os produtos recebidos da requisicao feita∀x (x ∈ estoqueFilial(estoqueFilial’, x.cod prod) = estoqueFilial(estoqueFilial,x.cod prod) + dados requisicao)

• Abastecer Estoque da Matriz∆ Sistemanovos produtos? : [<cod prod : INTEIRO, qtdade: INTEIRO¿>]estoqueMatriz! : ESTOQUE MATRIZ

16

Page 17: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

Pre://todos os dados dos produtos, existem∀x.(x ∈ novos produtos? → x.cod prod ∈ dados(produtos, cod prod))//a quantidade solicitada e maior que zero∀x (x∈ novos produtos? → x.quantidade >0)Pos://o estoque da matriz,depois de receber os produtos, deve ser igual aoestoque anterior mais os produtos recebidos∀x (x ∈ estoqueMatriz(estoqueMatriz’, x.cod prod) = estoqueMatriz(estoqueMatriz,x.cod prod) + novos produtos?)

• Gerar Consultas MatrizΞ Sistemacod matriz?: INTEIROconsulta matriz!: DADOS CONSULTA MATRIZPre://o codigo da matriz e validocod matriz? ∈ dados(matriz, cod matriz)Pos:// consulta realizadaconsulta matriz! = gerarConsultaMatriz(cod matriz?)

• Liberar Caminhao∆ Sistemacod caminhao?: INTEIROPre://o caminhao deve existircod caminhao? ∈ dados(caminhoes, cod caminhao)//o caminhao esta alocadodisponıvel(caminhoes, cod caminhao?)Pos://disponibilizar caminhaodisponıvel(caminhoes, cod caminhao?)

• Gerar Consultas FilialΞ Sistema cod filial?: INTEIROconsulta filial!: CONSULTAS FILIALPre://o codigo da filial e validocod filial? ∈ dados(filiais, cod filial)Pos://retorna a consulta realizadaconsulta filial! = gerarConsultaFilial(cod filial?)

17

Page 18: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

3.3 Diagrama de Classes

Figura 14: Diagrama de classes

4 Capıtulo 4

Um exemplo completo de utilizacao passo a passo do sistema que permita veri-ficar a correspondencia das especificacoes e testes descritos no item anterior

4.1 Especificacao formal e codigo fonte

Cadastrar Produto ∆ Sistemadescricao? : STRINGpreco compra? : REALpreco venda? : REALtamanho? : INTEIROproduto! : PRODUTOPre://a descricao nao e vazia#descricao? >0//a descricao nao pode existir no conjunto de produtos antes de ser cadastradadescricao? /∈ dados(produtos, descricao)//o preco de compra do produto e maior que zeropreco compra? >0//o preco de venda do produto e maior que zero

18

Page 19: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

preco venda? >0//o tamanho deve ser maior que zerotamanho? >0

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {// bot~ao oktry{ int codigo = Integer.parseInt(jtfCodigo.getText());\\

if(codigo <= 0){ JOptionPane.showMessageDialog(null, "codigo deve ser " +

" maior que zero"); } }catch (Exception e){ JOptionPane.showMessageDialog(null, "Codigo Incorreto!"); }}

private void jBsalvarActionPerformed(java.awt.event.ActionEvent evt) {// bot~ao SalvarString descr = jtfdescricao.getText();if(descr.equals("")){ JOptionPane.showMessageDialog(null, "Preencha o campo descric~ao");

return; }String tam = jtftam.getText();\\if(tam.equals(""))\\{ JOptionPane.showMessageDialog(null, "Preencha o campo tamanho");

return;}int tamanho;try { tamanho = Integer.parseInt(tam);

if(tamanho <= 0){ JOptionPane.showMessageDialog(null, "tamanho deve ser " +

" maior que zero"); }}catch (Exception e){ JOptionPane.showMessageDialog(null, "Tamanho deve ser numero inteiro!");}String preC = jtfprcomp.getText();if(preC.equals("")){ JOptionPane.showMessageDialog(null, "Preencha o campo preco de compra");

return; }double precoCom;try{ precoCom = Double.parseDouble(preC);

if(precoCom <= 0){ JOptionPane.showMessageDialog(null, "preco de compra" +

" deve ser maior que zero"); } }catch (Exception e){ JOptionPane.showMessageDialog(null, "preco de compra deve ser" +

"um numero real!"); }String preV = jtfprven.getText();if(preV.equals("")){ JOptionPane.showMessageDialog(null, "Preencha o campo preco de venda");

return;}double precoVen;try

19

Page 20: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

{ precoVen = Double.parseDouble(preV);if(precoVen <= 0){ JOptionPane.showMessageDialog(null, "preco de venda deve" +

" ser maior que zero!");}}catch (Exception e){ JOptionPane.showMessageDialog(null, "preco de venda deve ser um numero real!");}}}

Pos://descricao contida no cadastro do produto e a mesma dada pelo usuarioproduto!.descricao = descricao?//o preco de compra do produto e o mesmo dado pelo usuarioproduto!.preco compra = preco compra?//o preco de venda do produto e o mesmo dado pelo usuarioproduto!.preco venda = preco venda?//o tamanho do produto cadastrado e o mesmo dado pelo usuarioproduto!.tamanho = tamanho?//criar cadastronovo(produto!.cod prod, produtos, cod prod)//o produto cadastrado deve pertencer ao conjunto de produtosproduto! ∈ produtos’

public void cadastrarProduto(int codigo, String descricao, int tamanho, double precoCompra, double precoVenda)// Os parametros do metodo s~ao os mesmos que o usuario digitou e o sistema validou

{Produto objProduto = new Produto(codigo, descricao, tamanho, precoCompra, precoVenda);String dadosProduto = objProduto.getCodigo() + "," + objProduto.getDescric~ao()+ "," + objProduto.getTamanho() + "," + objProduto.getPrecoCompra() + "," +

objProduto.getPrecoVenda();// Escreve o novo produto no arquivo de produtos.Arquivo.escreverArquivo("produtos.txt", dadosProduto); }

4.2 Resultados atingidos:

O sistema desenvolvido obteve grande parte dos requisitos necessarios para ocontrole e lojistıca de vendas no varejo. O sitema e viavel para uso real, poremo tempo desenvolvimento do trabalho, nao foi o suficiente para atingir todos osobjetivos do sistema referentes a parte de implementacao do projeto.O objetivo central do sistema foi alcancado, pois as lojas funcionam separada-mente cada uma tem suas propriedades, porem todas as filiais trocam mensagensque foram padronizadas (conforme criterios de desenvolvimento) com a matrizque tem monitoramento sobre seus estoques(entrada e saıda), e e atraves damatriz que as lojas repoem seus estoques.A utilizacao do sistema tras benefıcios a empresa em relacao ao tempo, con-trole de estoque, possibilitando coletar e armazenar informacoes suficientes paraefetuar- se balancos de vendas, controle de caixa entre outras demais vantagens.

20

Page 21: Monogra a Projeto Integrado - dainf.ct.utfpr.edu.bradolfo/Disciplinas/ProjetoIntegrado/...Monogra a Projeto Integrado Kelly Cristina Schultz, Leticia Ueda, Vanessa Maria da Silva 18

5 Capıtulo 5

5.1 Conclusao

A partir da construcao do referido projeto integrado, concluımos que, num sis-tema, tudo comeca a partir modelagem dele, levando em consideracao somenteas funcoes mais gerais do sistema, e em seguida e importante especificar cadaprocesso para que se defina e se possa compreender a finalidade de cada umdeles para, enfim, implementar o sistema com maior organizacao. Sendo estaa parte que requer uma maior concentracao nos mınimos detalhes das funcoesde todos os processos do sistema. Tal complexidade do projeto integrado nosimpulsionou a buscar novos conhecimentos, extra-curriculares, para enriquecera qualidade do trabalho.

5.2 Referencias

• ead.dainf.ct.utfpr.edu.br/

• Professores e monitores(Robson Linhares, Adofo Neto, Eduardo Bernar-des, Alan)

6 Anexos

Para a construcao do projeto, foram utilizadas as seguintes ferramntas:

• NetBeans IDE 6.5 + JDK, para programacao.

• Microsoft Office Visio 2007, para a modelagem do sistema

• WinEdt, para desenvolvimento da parte escrita do projeto.

Esse sistema sera compatıvel apenas com a plataforma Windows e poderaser utilizado por seu usuario atraves da ferramenta netbeans ide 6.5, ou versaosuperior, e e necessario que o usuario tenha a maquina virtual Java instaladaem seu computador.

21