Linha 484: Linha 484:
==Diagrama de Pacote==
==Diagrama de Pacote==
<br>
<br>
[[Arquivo:uml22.jpg|thumb|1211px|center|Normalização da Tabela Produto e Tabela Ativos.]]<br><br>

Edição das 23h42min de 18 de setembro de 2013

Escopo


A medida que o mundo evolui tecnologicamente há uma demanda crescente por produtos que sejam inovadores e sustentáveis, forçando as indústrias a trabalhar com múltiplos processos cada vez mais complexos e sofisticados em sua linha de produção. Visando gerir com máxima eficiência todo este sistema, há uma crescente procura por softwares e sistemas de gerenciamento que facilitem o planejamento de manufatura, redução dos custos e otimização das tarefas. Para atender esta lacuna, temos como projeto a construção de um sistema de gerenciamento de produção sofisticado, agregando as mais novas soluções tecnológicas que permitam aos usuários um maior dinamismo em seu manuseio e reprogramações de tarefas; refletindo assim diretamente em um menor custo, na agilização das tarefas (economia de tempo), na melhor combinação do suprimento das linhas de produção e suas demandas, e na geração de informações em tempo real tanto para a empresa como para seu cliente final. O software será desenvolvido na linguagem de programação de alto nível (C++, Focus ou Ruby) e que permita trabalhar com os mais variados tipos Bancos de Dados (SQL Server, Oracle, Debiam, MySQL, DB2, FileMaker, Apache Derby, Teradata, Firebird, Access e outros). Deve ser integrado a hardwares com tecnologia de tela multitoque (reconhece múltiplos contatos simultaneamente), e que a aplicação seja utilizada colaborativamente por vários utilizadores simultaneamente. O software também deve permitir a simulação virtual da produção, projeções e a escrita de scripts específicos de programação por recursos produtivos (máquinas ou atividades).


5W2H

What

1. Qual o nome do seu projeto?

CPP – PLANNING (CONTROLE E PROGRAMAÇÃO DA PRODUÇÃO)


2. Qual o objetivo deste projeto?

O Objetivo é desenvolver uma solução completa para administração da produção industrial aproveitando o máximo da tecnologia multi toque de tela para (touch screen) com recursos vetoriais, programação linear mista e utilização do diagrama de Gantt, propiciando ao usuário praticidade e rapidez na programação das linhas de processos de produção, total visão do nível de ocupação das máquinas, prevenção de períodos ociosos e "gargalos", simulação virtual dos processos antes de colocar em linha de produção, gerenciamento em tempo real e integração com demais softwares estabelecidos na empresa.


4. Quais os maiores desafios, na sua opinião, para se realizar este trabalho?

O maior desafio é conseguir uma equipe qualificada para desenvolvimento do projeto e a simulação real do protótipo em vários ambientes fabris.


5. Quais os conhecimentos básicos que devemos ter para se implementar este projeto?

Os Conhecimentos necessários para implementar o projeto estão baseado na engenharia computacional, sistema de programação, engenharia de produção, engenharia de software e administração da produção, tais como:

  • conhecimento em metodologias técnicas de gerenciamento da produção (Diagrama de Gantt).
  • conhecimento em gerenciamento de produção em linha e células.
  • conhecimento em matemática, estatística e metodologia de custeio.
  • conhecimento em análise de sistemas e engenharia de softwares
  • conhecimento em linguagens de programação e tecnologia touch screen.


4. Quais soluções similares existem no mercado?

Há inúmeras ferramentas de gestão da produção comercializadas individualmente ou integradas a sistemas ERP(Enterprise Resource Planning), amplas ou restritas (quando destinado a segmentos específicos das indústrias), simplificada com poucos recursos ou complexas (abrangendo múltiplos processos). Dentre as soluções similares (porém limitadas) no mercado brasileiro, destacamos os módulos de Controle da Produção das empresas Tovts, Senior Sistemas, SAP, Metrics, Alterdata e QAD.

Why

1. Porque é interessante desenvolver este projeto?

O desenvolvimento deste projeto é importante porque não há nada idêntico no mercado atualmente, apesar de haver uma demanda por softwares menos complexos e que ofereça mais recursos, facilidade de manuseio, e que gerencie com mais eficácia o setor de produção (redução de custos e tempos ociosos). As soluções similares são muito limitadas pois possuem funções específicas e demandam muita mão de obra operacional, já que os lançamentos e tratamentos de dados tomam muito tempo do usuário, e com intuito de torná-lo mais ágil as empresas subdividem os processos de alimentação do sistema entre vários usuários. A tecnologia touch implementada no sistema tornará o processo de manuseio e alimentação de dados mais ágil, enquanto o tratamento vetorial dos recursos em forma de imagens faz com que o a interface sistema/usuário seja mais amigável. Também a integração em tempo real do sistema com os hardwares (máquinas e equipamentos) através de um conjunto de sensores e porta de entrada de dados permite análise simultâneas e rápida para tomada de decisões entre os departamentos comercial, produção, estoque, logística e financeiro. Além de todos estes atributos, o software é um benchmarking com mais recursos e tecnologia.


2. Porque deve usar a tecnologia escolhida?

Esta tecnologia deve ser escolhia porque será a melhor solução existente no mercado, com mais recursos que permitirá o controle da produção em tempo real, reduzindo gastos através de um gerenciamento eficaz da produção.


Who

1. Quem pode se beneficiar deste projeto?

O software terá como alvo indústrias que trabalham com processos em linha ou células de fabricação de produtos (que correspondem a 90% das indústrias), que tenham a necessidade de uma ferramenta que permita controlar com eficácia a produção (uso máximo dos recursos com redução da ociosidade e de "gargalos").


2. Quem poderá operar o sistema?

Usuário comum, com um treinamento específico de funcionalidade do software.


3. Quem deverá participar do desenvolvimento do sistema?

Analistas e especialistas em programação, engenheiros da computação que sabem sobre tecnologia touch, e administrador de produção ou engenheiro de produção, além de técnico de PCP na etapa de testes.



Where

1. Onde o dados serão inseridos?

Os dados para processamento serão inseridos pelo usuário em uma interface gráfica (janelas do software), e importados de um banco de dados do cliente.


2. Onde os dados serão externalizado, publicados?

Serão externalizados através de relatório de consultas via monitores, através de relatórios impressos, exportado para outros bancos de dados de outros sistemas (softwares) do cliente, e pela internet para aplicativos interligado ao sistema do software.


3. Onde esta aplicação poderá ser usada?

Em setores produtivos da indústria para o planejamento e gerenciamento de suas atividades fabris.


4. Onde as informações serão armazenadas?

Todos os dados e informações serão armazenadas em banco de dados dos servidores alojados na empresa.


5. Onde o software deverá ser hospedado?

Dentro da empresa em seus servidores e computadores.



When

1. Em quanto tempo pretende desenvolver o sistema?

O Prazo para desenvolvimento e de 18 meses mais 06 meses de testes e ajustes em diferentes âmbitos industrias.


2. Quais serão as fases e em quanto tempo cada uma?

Etapas Prazo Atividades
Levantamento de Requisitos 2 Meses Definição das funcionalidades necessárias baseado nas demandas do mercado.
Arquitetura e Projeto 2 Meses Definição das Linguagens e Tecnologias empregadas na criação do software.
Prototipação 4 Meses Elaboração do Fluxogramas e Montagem Gráfica das Interfaces de comunicação.
Desenvolvimento 7 Meses Codificação.(*Obs)
Documentação 5 Meses Elaboração de Manuais Técnicos e Guias de Usuário. (*Obs)
Testes e Validação 6 Meses Correções de erros e aprimoramentos.
Implantação O tempo de implantação dependerá do Pacote de Contração do cliente.

(*Obs). Os trabalhos para documentar o software e a codificação serão realizadas paralelamente, durante um período de 10 meses.




How

1. Como será dividido o desenvolvimento do sistema?

O software terá uma linguagem de programação orientada a objeto, ou seja, terá estruturas em módulos de funções de acordo com as classes. O software é subdividido em 04 módulos com funções específicas:

  • Programação da Produção - PP
  • Simulador Virtual de Cenários - SVC
  • Integrador de Banco de Dados - IBD
  • Gestão de Recursos- RM do inglês Resource Management


2. Como será feita a entrada de dados?

A entrada de dados no sistema ocorrerá de várias maneiras:

  • Lançamentos da Ordem de Execução do Produto (OP) e cadastro de todos os recursos que serão utilizados no processo através de interfaces, através de digitação em um teclado, e/ou seleção na tela de recursos pré cadastrados.
  • Lançamentos de dados nos sistemas através de: hardwares instalados nas máquinas (sensores, contadores, digitalizador, etc); leitores de códigos de barras e terminais "burros" (sem capacidade de processamento) na linha de fabricação. Estes dados fornecidos vão integrar os dados de volume de produção, de conclusão de etapas de execução de tarefas, tempos setups (tempos de parada na produção, seja por ajuste, manutenção, etc) códigos e nome de operadores e etc.
  • Importação de informações contidos em um banco de dados gerenciado por outro software contido na empresa que será implantada o sistema.


3. Como será feita a saída de dados?

Os dados serão tratados em forma: de gráficos, tabelas, imagens, fluxos, relatórios. Serão consultados em: tela computador, rede externa (internet) ou interna (intranet), documento impresso, gravados em banco de dados, pendrives ou/e memória permanente externa ao sistema.


4. Como será o procedimento para as funcionalidades?

O procedimento dependerá da tecnologia envolvida no desenvolvimento (linguagem de programa adotado, tecnologia touch-screen, sistema de redes) e no gerenciamento de bando de dados.



How much

1. Quanto custa o sistema?

O custo total estimado de desenvolvimento do sistema, é de R$ 3.334.400,00 (Mão de Obra e Recursos Operacionais), ou seja, um custo mensal de aproximadamente R$ 138.933,33 conforme tabela detalhada abaixo:


Recursos MO Quant Vr. Mensal (R$) Períodos Custo Total (R$)
Coordenador de Projetos 1 10.000,00 24 240.000,00
Programadores 5 3.500,00 24 420.000,00
Engenheiro de Computação 2 10.000,00 12 240.000,00
Engenheiro de Software 1 8.000,00 18 144.000,00
Consultor Administrador 1 6.000,00 18 108.000,00
Analistas de Sistemas 3 3.000,00 24 216.000,00
Consultor Técnico em PCP 1 3.000,00 24 72.000,00
Escriturário 1 2.000,00 24 48.000,00
Serviços Gerais 1 900,00 24 21.600,00
- Sub-Total 1.509.600,00
Encargos (100%) - - - 1.509.600,00
Custo com MO - - TOTAL 3.019.200,00


Recursos Operacionais Quant Vr. Mensal (R$) Períodos Custo Total (R$)
Aluguel 1 1.500,00 24 36.000,00
Despesa com Escritórios (Agua, Luz, Telefones, e etc) 1 6.000,00 24 144.000,00
Despesas com Transportes e Viagens 1 1.500,00 24 36.000,00
Despesas com Contador 1 8.000,00 24 19.200,00
Aquisição de materias e Imobilizados 1 80.000,00 1 80.000,00
Custo Operacional - - TOTAL 315.200,00


2. Quantos serão os profissionais envolvidos no projeto?

Será preciso de 16 profissionais:

O corpo administrativo e staff será composto por 03 pessoas:

  • 01 Coordenador do Projeto e Gesto Geral
  • 01 Escriturário
  • 01 Aux. de Serviços Gerais

O corpo técnico será composto 13 Profissionais Especialistas:

  • 03 Engenheiros especialistas
  • 05 programadores
  • 03 Analistas de Sistemas
  • 01 Consultor Administrador de Produção
  • 01 Consultor Técnico especialista em PCP - Planejamento e Controle da Produção



3. Qual será o preço de aquisição do seu software para o usuário final?

O sistema não será vendido, e sim licenciado por usuários. O contrato firmado com o cliente será anual, com mensalidade de R$ 3.000 para fornecimento de 10 licenças com acessos simultâneos. A contratação dará direito ao cliente suporte técnico gratuito online e atualizações de versões. Suporte local, treinamentos, customização no software após implantação terão custos cobrados através de novos contratos suplementares. Os Custos com implantação é de R$ 35.000 para um pacote de 250 horas para o treinamento e adequação do software com o banco de dados da empresa (customização).

DFD

Diagrama de Fluxo de Dados (DFD) do Módulo de Programação da Produção - PP.

A programação da produção se inicia com a importação da Ordem de Produção (OP) gerada pelo Sistema Orçamentário do Cliente. A partir dai os processo do sistema são divididos em:

  • Programar Produção: Armazena os dados da Ordem de Produção (OP) no Banco de Dados do Sistema. Valida os recursos da OP com as especificações das máquinas ou da mão de obra empregada na OP. Se tiver em conformidade as informações da OP juntamente com a capacidade de produção, passa-se para o cálculo do tempo de execução da OP.O Técnico de PCP pode também programar outros tipos de recursos (operações ou processos) nos períodos ocioso da máquina tipo manutenção preventiva), paradas de máquinas (defeito mecânico, falta de energia, limpeza e etc)
  • Calcula Tempo de Execução: Neste processo o sistema irá quantificar o tempo (em horas) necessário para execução da OP por recursos e etapas de manufatura (Máquina e Mão de Obra). E quantificado também ajustes e intervalos de processos não produtivos (estágios de ociosidade).
  • Avalia Capacidade Produtiva: Neste processo o sistema consulta o Banco de dados das Linhas de Produção, cruzará o tempo de disponibilidade da máquina/mão de obra, e gera uma instrução de reserva e alocação de mais um módulo de atividades nas linhas de tempo das Máquinas ou dos recursos de Atividades Manuais.
  • Reserva: Neste processo o sistema aloca mais etapas de recursos (processos) nas linha de tempo das máquinas/atividades que serão utilizada no processo de manufatura da OP.
  • Autoriza e Reprograma: Apos reservar e alocar a OP na linha de tempo dos Recursos de manufatura, o sistema mostra a nova situação da linha de produçã. O técnico de acordo com as informações e necessidade pode confirma a linha de produção ou reprogramar (quebrando a OP em mais entrada de máquina, trocando a hierarquia de execução dos recursos na linha de produção etc)
  • Lançar dados de Execução da OP por Recursos usado: O sistema coleta dados da evolução da execução da OP, através de sistemas eletrônicos e sensores das máquinas, como também, através de entrada de dados da produção realizado pelos operários e ajustando automaticamente dos dados na Linhas de tempo de Produção.




DER


DIAGRAMAS UML


Normalização


1. Identificando os Objetos e as Classes (atributos e operações dos objetos):

O objetivo da prototipação é desenvolver uma ideia conceitual simples do futuro projeto. Portanto os requisitos da protipação envolve a manipulação e tratamento somente das informações básica essenciais do sistema de gerenciamento e planejamento da produção chamado de CPP.

Para desenvolver o Sistema de Gerenciamento e Planejamento de Produção Orientada a Objetos, construímos uma cadeia de procedimentos desenvolvido em um departamento de PCP (Planejamento e Controle da Produção) e identificamos os objetos que orientam as tarefas e que possuem uma relação de dependência entre os mesmos ou que afeta todo planejamento de uma produção:

2. Objetos:

  • Cliente (ator)
  • Pedido (documento)
  • Produto (artefato)
  • Ordem de Produção (documento)
  • Maquinas (artefato)
  • Mão de Obra (pessoa)
  • Recursos (meios)
  • Evento Produtivo (tarefa)
  • Ocorrências (acontecimento que afeta o Evento)


Representação do fluxo da mensagem entre os objetos.




















3. Analisando o comportamento destes objetos e seus métodos, representamos (abstração) estas entidades através das seguintes classes:

  • Cliente
  • Pedido Cliente
  • Produto
  • Ordem Produção
  • Ativos (MO + Maquinas)
  • Recursos Produtivos
  • Eventos
  • Ocorrência Produção


Como o software será estruturado para que usuários diferentes tenham visibilidades e permissões diferentes ao acessar as Classes então o projeto prevê ainda uma "classe utilitária" e uma "classe enumeração" que define as regras para permissões da “Classe Usuário” onde será guardado os atributos e operações que cadas usuário terá.



4. Aplicando a Primeira Forma Normal – 1FN

Ao montar as tabelas das Classes, averiguamos que em algumas não havia nescessidade de mudanças, mas outras exigiam uma expansão já que havia repetição de dados e redundâncias, ou possuíam chaves compostas e dependências parciais.

  • Tabelas que não exigiam mudanças:


- Tabela Cliente

- Tabela Usuário


A “Tabela Cliente” tinha os atributos “Código Cliente” e o “CNPJ/CPF” como candidatos a chaves primária , pois os demais atributos eventualmente estavam suscetíveis a se repetir ou possuíam dependência funcional sobre o código Cliente. A única precaução que tivemos foi lançar duas chaves primárias na tabela Cliente já que o CNPJ ou CPF jamais poderia se repetir e individualiza o Nome_Cliente em situações de repetição como no exemplo abaixo . Quanto a “Tabela Usuário” não houve necessidade de normalizar apenas a estabelecer chave primária o código do usuário

Normalização da Tabela Cliente e Tabela Usuário.





  • Tabelas que exigiam mudanças:


- Tabela Produtos

- Tabela Ativos


Na Tabela Produto e na Tabela de Ativos, os atributos cujos dados não se repetem e consequentemente candidatos a chave primária são os seus próprios código de identificação. Os demais atributos tinha uma dependência funcional em relação ao código de identificação da Classe. Havia também aninhamento de informações e consequentemente de tabelas, que tivemos que desmembrar.



Normalização da Tabela Produto e Tabela Ativos.





5. Aplicando a Primeira e Segunda Forma Normal – 1FN e 2FN


- Tabela Recurso Produtivos

- Tabela Pedido


A Tabela das Classes Recurso Produtivo, Pedido, Ordem de Produção, e Eventos são representações abstratas de documentos e tarefas no contexto do Planejamento de Produção. Portanto estas Classes são composições de informações de outras Classes (Produto, Maquina, Operário e Cliente).


Ao fazer a análise na Tabela Recurso Produtivo verificamos aninhamento de dados e uma composição com uma Classe já normalizada (Ativos MQ e MO). Como a Classe de Ativos não depende do Recursos Produtivo para existir, mas o recurso precisa de um ativo (dependência parcial), então tivemos que criar mais um Classe de transição agregada a Classe Recursos Produtivos que contem Ativos, e que chamamos de “Item Recurso” que passa ter um dependência direta com o a Classe Recurso Produtivo. Para desaninhar as tabelas e ficar adequada ao 2FN, criamos também as Classes Unidade Recurso e Setor Uso e Parâmetro.


Normalização da Tabela Recurso Produtivo.


A Tabela Parâmetro é uma classe especial agregada ao Recurso produtivo que armazenas uma Classe Utilitária interna (composição) que possui as funções do sistema que roda script de programação para o cálculo do tempo de execução do próprio Recurso Produtivo quando chamado por outras Classes (Ex.: Classe OP). Percebemos que ainda há repetição de dados, mas todos são depende funcional da chave Cod_Recurso, e esta repetição é um redundância necessária.


Na Tabela Pedido Interno temos aninhamento de dados e valores não atômicos, ou seja, um pedido relaciona com vários Produtos possuindo repetição de dados. Foi necessário decompor em mais duas tabelas gerando a Tabela de Vendedor e Pedido Item (onde alocamos os produtos). Percebemos que a Classe Pedido Item não poderia está agregado ao Pedido pois cada produto deriva (ramifica) vários processos para sua execução portanto tornaria independente e associada ao produto e ao pedido.


Normalização da Tabela Pedido Interno.





6. Aplicando a Primeira, Segunda e Terceira Forma Normal – 1FN, 2FN e 3FN


- Tabela Ordem de Produção


A Tabela Ordem de Produção tem como chaves candidatas a chave primária os atributos "Cod OP" e o "Cod Item Pedido". Levantando todos os atributos que compõe esta Classe encontramos os mesmos problemas de redundâncias e aninhamentos das tabelas normalizadas, porém dava para identificar que havia dependida parciais com por exemplo da “Unidade produção” que possuía dependência com o “cod item pedido” e não com o “cod da OP” que é uma das chave primárias candidatas, e dependências transitiva já que alguns atributos tinha dependência funcional com mais de um campo de atributos com é o caso do “cod recurso” que dependia do “item pedido” e ao mesmo tempo da “cod OP” e ambos atributos não poderiam permanecer na mesma tabela pois propiciavam repetição de dados.


Normalização da Tabela Ordem de Produção.



Os dados das tabelas “OP” e “Item OP” e “Unidade de Produção” antes aninhada, agora possuem valores atômicos e seus atributos possuem dependência total de suas chaves.


A última tabela normalizada é a Tabela Eventos (tarefas executadas) que indica as tarefas e Ocorrência (circunstancias não previstas) no processo e manufatura do produto que possuíam os mesmos problemas da Tabela de Pedido, mas que após a normalização obtemos três tabelas com graus de dependências funcionais distintas.



Normalização da Tabela Eventos.



Diagrama de Classes


Arquivo:Uml14.jpg
Normalização da Tabela Produto e Tabela Ativos.



Diagrama de Caso de Uso


Diagrama


Arquivo:Uml15.jpg
Normalização da Tabela Produto e Tabela Ativos.



Documentação dos Casos de Usos


Diagrama de Sequência


Arquivo:Uml16.jpg
Normalização da Tabela Produto e Tabela Ativos.



Diagrama de Colaboração


Arquivo:Uml17.jpg
Normalização da Tabela Produto e Tabela Ativos.



Diagrama de Estado


Arquivo:Uml18.jpg
Normalização da Tabela Produto e Tabela Ativos.



Diagrama de Atividades


Arquivo:Uml19.jpg
Normalização da Tabela Produto e Tabela Ativos.



Diagrama de Objetos


Arquivo:Uml20.jpg
Normalização da Tabela Produto e Tabela Ativos.



Diagrama de Componentes


Arquivo:Uml21.jpg
Normalização da Tabela Produto e Tabela Ativos.



Diagrama de Pacote


Arquivo:Uml22.jpg
Normalização da Tabela Produto e Tabela Ativos.