Página anterior Voltar ao início do trabalhoPágina seguinte 


Previsão de séries temporais com redes neurais artificiais aplicada à demanda (página 2)


Dentre as várias técnicas que poderiam ser usadas para a previsão optou-se pela utilização de redes neurais artificiais(RNA), por apresentarem resultados melhores em séries do mundo real e que normalmente apresentam ruídos.

Segundo Cortez(1997, p. 4), os métodos convencionais de PST criam os seus modelos com base em componentes da série temporal, como a tendência ou a sazonalidade. Este tipo de abordagem é aplicável a séries bem comportadas, mas falha quando estas apresentam ruído ou com componentes não lineares.

2 SISTEMAS DE APOIO À DECISAO

Juntamente com a internacionalização da economia houve uma crescente busca pela informatização das empresas. Esse fato se justifica pela necessidade de agilidade no fluxo de informação pelas organizações. Hoje é indiscutível a importância de informações corretas e em tempo hábil no processo de planejamento e conseqüentemente na tomada de decisão.

Essencialmente, todos os sistemas de informação se prestam à tomada de decisão uma vez que fornecem os mecanismos necessários ao fluxo da informação. No entanto costuma-se subdividir os sistemas de informação em diversas categorias. O nosso estudo baseia-se pricipalmente nos "Sistemas de Apoio à Decisão" propriamente ditos. Esse tipo de sistema utiliza modelos para resolver problemas não estruturados, são adaptativos conforme as características dos dados envolvidos e são capazes de forcecer informações aos níveis gerenciais e executivos.

 

Os sistemas de apoio à decisão são uma das principais categoria de sistemas de apoio gerencial que ajudam na análise de informações do negócio. Sua meta é ajudar a administração a definir tendências , apontar problemas e tomar decisões inteligentes, fornecendo aos gerentes apoio interativo de informações durante o processo de tomada de decisão (SILVA, 2005, p. 14).

2.1 Sistemas Inteligentes como Estratégia Competitiva

Entende-se por sistemas inteligentes aqueles capazes de colher dados e criar representações, modelos, estimativas, prever cenários e realizar simulações com base nesses dados sem a necessidade de interação humana, buscando gerar vantagens competitivas para a organizaçao. Esse tipo de sistema é comumente categorizado como Business Inteliggence(BI).

Segundo Silva(2005, p.15) a função dos administradores da empresa é extremamente decisória. As decisões gerenciais afetam diretamente a sobrevivencia da empresa e a vida das pessoas que giram em torno dela, sejam elas empregados, acionistas, fornecedores ou clientes.

Obviamente, o futuro da empresa depende da habilidade de seus gestores e na qualidade das decisões tomadas por eles. Não se pode ignorar os outros fatores de influência, mas é de se esperar que uma equipe bem formada consiga contornar as dificuldades encontradas de forma satisfatória.

Deve-se considerar no entanto, que decisões estratégicas dependem de planejamento, pesquisa e construção de suposições, através dos quais será possível traçar os novos objetivos e os caminhos a serem tomados.

Desse modo, a informação caracteriza-se como ferramenta impressindível ao crescimento da organização uma vez que diminuem os riscos provenientes de decisões errôneas. A informação é capaz de tornar a organização mais produtiva e competiva a medida em que seus recursos são melhor aproveitados, reduzindo desperdícios e definindo onde, quando e como os recursos devem ser investidos visando o maior aproveitamento dos mesmos.

Para Silva apud Gattes(1997, p. 16) "A informação é algo que alguém deseja obter e está disposto a pagar por ela, não é tangível e nem mensurável, mas é um produto valioso no mundo contemporâneo, pois proporciona poder.

Os sistemas de informação extratégicos são de extrema necessidade em setores competitivos e/ou que envolvem grandes investimentos, pois, demonstram os indicadores de desempenho da empresa e fornecem subsídios para a criação de estratégias que permitam o desenvolvimento de quem os utiliza.

2.2 Informação Estratégica

Antes de definirmos Informação estratégica é preciso entender o significado dessas duas palavras:

Informação: "algo que se conhece e em que se baseia para racionalizar"

(DICIONÁRIO WIKTIONARY, 2009).

Estratégia: "Uma seqüência de pensamentos possível de ser repetida que leva a ações que consistentemente produzem um resultado específico" (GOLFINHO, 2009).

Assim, podemos entender que a informação estratégica é a informação que pode ser usada na definição de uma estratégia. Esse tipo de informação é oriunda de históricos, de análises, de pesquisas e estudos realizados com a finalidade de entender o ambiente externo e interno. É uma maneira de se obter conhecimento sobre a concorrência, clientes e os processos de négocios afim de antecipar mudanças ou ações dos competidores. Isso torna a organização mais eficaz, pois refina suas ações à medida em que aprende com o sucesso e falhas dos competidores e aumenta a chance de acerto em uma tomada de decisão

Segundo Vaitsman(2001), qualquer decisão que divirja das informações que a subsidiaram dificilmente será a mais acertada. Hoje e amanhã, muito mais do que no passado, qualquer política empresarial exigirá um fluxo informacional cada vez mais intenso.

Para Vaitsman(2001) o conhecimento é instrumento do poder. Seu uso faz seu utilizador alcançar seu próprio poder, importancia e influência.

3 PREVISAO DE SÉRIES TEMPORAIS APLICADA AO CONSUMO

É importante evidenciar algumas características do ambiente de estudo, seus conceitos e as ferramentas/técnicas utilizadas no dia-a-dia. Durante o desenvolvimento do trabalho optou-se por escolher um estudo de caso que tivesse aplicabilidade e importância econômica por considerar-se que a difusão e o aprimoramento dos trabalhos acadêmicos dependem fortemente do interesse e do investimento privado.

Existem ambientes onde a previsão de consumo é de importância fundamental, ora por mera questão de marketing e crescimento da organização, ora por se tratar de emergências graves.

Pode ser citado como exemplo o comércio em geral em que se necessita saber como será a demanda de seus produtos para ajustar sua oferta. Ou ainda um estoque de medicamentos de regiões isoladas, onde as previsões de vencimento e de consumo se fazem necessárias, afim de que não haja falta, nem seja necessário ter um estoque que não será usado a não ser pra suprir as eventualidades.

Em todos os casos, a política adotada quase sempre é ter um estoque "inchado" onde a diferença entre o estoque necessário e o estoque real é chamada de "estoque de segurança", onde as flutuações da demanda não afetem diretamente a imagem da organização e em outros casos, não tragam prejuízos graves aos consumidores.

Esse tipo de abordagem, embora comum, não necessariamente acaba com a incerteza da escassez do produto ofertado. Além disso, cria-se um novo problema que é o investimento desnecessário para suprir essa insegurança, desse modo, boa parte do capital da organização fica imobilizado, evitando que possa ser investido em desenvolvimento de outros setores.

Como se pode ver pelos exemplos citados é de fundamental importância um bom planejamento para que não haja escassez de produto sem, no entanto, comprometer o capital da empresa na aquisição de estoque de segurança. Nesse sentido, o ponto principal do presente trabalho é demonstrar como a criação de modelos baseados em históricos de consumo podem ser utilizados parar criar projeções para os próximos períodos, fornecendo um diferencial competitivo para as corporações que saibam utilizar essa técnica. Contribuindo para a diminuição do desperdício de recursos e também ajudando os gestores nas tomadas de decisão.

Como é um processo probabilístico, não se pode ignorar a existência de falhas na previsão. Apesar de se esperar um resultado aceitável, isto é, uma previsão que se assemelhe ao resultado real, não é intenção da previsão de séries temporais atingir um nível total de acertos, seu objetivo é fornecer informações capazes de auxiliar um gestor na sua tomada de decisão. Sendo assim, na maioria dos casos ao se comparar o resultado previsto com o resultado real aparecerão divergências. Essas divergências são resultado de vários fatores, como por exemplo, a existência de um histórico não muito extenso; a incidência muito alta de aleatoriedade ou total falta de padrões de comportamento da série.

3.1 Construção dos Modelos de Consumo

Na maioria das situações de planejamento a criação de modelos nos ajuda a compreender como será o comportamento futuro de uma determinada variável, possibilitando a ajuste de certos fatores que melhorem ou até mesmo modifiquem a decisão a ser tomada.

 

Este desejo de compreender o passado e prever o futuro impulsiona a procura de leis que expliquem o comportamento de dados fenômenos ou acontecimentos. Se são conhecidas equações determinísticas que os explicam então é possível efetuar previsões desde que conhecida a sua gênese. No entanto, na ausência de regras que definam o comportamento de um sistema, procura-se determinar o seu comportamento futuro a partir de observações do passado (CORTEZ apud WEIGER, 1997, p. 16).

Um exemplo desse tipo de modelo são as séries temporais, a partir das quais podem ser construídos modelos matemáticos capazes de fornecer informações futuras com base no comportamento passado.

Uma série temporal é uma seqüência de observações sobre uma variável de interesse. A variável é observada em pontos temporais discretos, usualmente eqüidistantes, e a análise de tal comportamento temporal envolve a descrição do processo ou fenômeno que gera a seqüência (FERREIRA, 2001, p.7).

Com base na definição de série temporal, podemos inferir que, no caso de modelos de consumo, o modelo seria basicamente um gráfico que demonstre em intervalos regulares a quantidade consumida de um determinado produto. Em última análise esse modelo é nada mais que um gráfico de linhas simples, onde o eixo x representa os intervalos regulares de tempo e o eixo y representa as quantidades consumidas em cada período. A figura abaixo representa um exemplo de modelo de série temporal:

Monografias.comFigurFigura 1: Exemplo de série temporal

Fonte: Autor

3.2 Conceito e Características das Séries Temporais

Para Souza (2006, p. 28) Uma Série Temporal é qualquer conjunto Z de observações ordenadas no tempo, Z = {Zt, t = 1, 2,...,N} onde t é o índice de tempo e N é o número de observações.

Souza apud Morettin et al(2006, p. 28) concordam que os principais objetivos da Análise de Séries Temporais são :

  • Identificar o mecanismo gerador da série;

  • Descrever o comportamento da série, verificando a existência de tendência e ciclos de variações sazonais;

  • Procurar periodicidades relevantes nos dados;

  • Encontrar um modelo matemático que seja capaz de efetuar previsão de valores futuros das séries.

Das várias características que são encontradas no estudo das séries temporais pode-se citar a tendência, a sazonalidade, o ciclo e a aleatoriedade.

3.2.1 Ciclos

Ciclos são oscilações periódicas e tangíveis que se repetem ao longo da serie temporal. A figura abaixo representa uma série que contem um ciclo:

Monografias.com Figura 2: Ciclos em uma série temporal

Fonte: Autor

3.2.2 Tendência

Tendência é a característica que a série tem de manter por um determinado tempo um padrão de comportamento previamente encontrado, assim, uma séria onde os dados têm um acréscimo em relação ao anterior tem tendência de crescimento, por outro lado, se os valores são menores que o seu antecessor a série tem tendência de decrescimento.

Monografias.com Figura 3: Tendência de decrescimento em uma série temporal

Fonte: Autor

3.2.3 Sazonalidade

Segundo Cortez (2006, p.29), são flutuações periódicas assim como os ciclos, no entanto são separadas por flutuações intermediárias, quase sempre pelo mesmo período de tempo. Esse tipo de flutuação é comumente encontrado em variáveis que dependem de fatores como chuvas, estações, épocas do ano ou feriados.

Monografias.com

Figura 4: Períodos sazonais

Fonte: Autor

3.2.4 Aleatoriedade

São características comuns, mas não desejáveis à previsão de séries temporais, uma vez que representam a parte não previsível, ou ruído. As séries que apresentam muita aleatoriedade são menos passíveis de previsão, ou seja, quanto mais aleatória é a série menos sua previsão será correta. Sendo que o único motivo das previsões não serem totalmente corretas é devido à existência de aleatoriedade.

Monografias.com Figura 5: Série temporal com características aleatória

Fonte: Autor

3.3 Previsão de Séries temporais – Técnicas Estáticas vs. Redes Neurais

Em geral, todas as técnicas partem de resultados passados para prever resultados futuros. No entanto a eficácia de cada método depende das características principais da série.

A partir dos anos 50, várias técnicas de previsão desses dados foram desenvolvidas. Dessa época podemos citar o Alisamento Exponencial, que exigia poucos cálculos e era de fácil utilização. Com o advento do computador nos anos 50, houve uma revolução nos métodos de previsão (SOUZA, 2006, p. 24).

Desde então o desenvolvimento de técnicas de previsão têm aumentado significativamente, passando do campo estatístico para áreas inspiradas na natureza como os algoritmos genéticos (técnica baseada no processo biológico da evolução e que a cada ciclo seleciona as melhores soluções para a resolução de um problema), as redes neurais artificiais e até mesmo em uma combinação dos dois denominados sistemas de GANN. Por se tratar de um processo probabilístico deve-se considerar que nenhuma das técnicas é melhor do que as outras, no entanto há casos em que a escolha da técnica pode influenciar nos resultados obtidos, causando um maior ou menor grau de acerto dependo da natureza dos dados. Apesar de todas atuarem sobre as mesmas amostras, cada uma tem características próprias, algumas necessitando de grandes amostras de dados, outras que embora não exijam grandes amostras não conseguem tratar com facilidade fatores como sazonalidades ou ciclos; ainda há outras em que a presença de ruídos é fator limitante para uma boa previsão.

3.3.1 Técnicas Estatísticas e Probabilísticas

No campo estatístico as duas técnicas de PST mais conhecidas são: a Média Móvel e o Alisamento Exponencial. Este ainda se divide em Simples, Linear e Sazonal e Linear de Winter.

A média móvel considera como previsão para o período futuro a média das observações passadas recentes (MUELLER apud WHEELWRIGTH, 1996).

Em Mueller apud Morettin (1996) a média móvel para o período de tempo t é definida por:

Monografias.com

Onde n representa o número de observações incluídas na média Xt.

Muller apud Morettin (1996) defende que o termo média móvel é utilizado porque à medida que a próxima observação se torna disponível, a média das observações é recalculada, incluindo essa observação no conjunto de observações e desprezando a observação mais antiga

O Alisamento Exponencial Simples se assemelha à media móvel, entretanto esse método, ao contrário da média móvel em que cada observação contribui em igual proporção para o cálculo, atribui pesos diferentes a cada observação da série. Isso se dá por considerar-se que as observações mais recentes contribuem com uma parcela maior para s resultados subseqüentes.

Segundo Mueller apud Wheelwrigth(1996) O argumento para o tratamento diferenciado das observações da série temporal é fundamentado na suposição de que as últimas observações contém mais informações sobre o futuro e, portanto, são mais relevantes para a previsão.

Para Mueller apud Wheelwrigth (1996) "A equação que define esse tipo de previsão é a seguinte: Ft+1 = (Xt + (1 - () Ft. Onde Ft + 1 representa a previsão no tempo t + 1 e ( é o peso atribuído à observação X t , 0 < < 1".

O dois métodos vistos são aplicáveis a séries com pouca ou nenhuma tendência, no entanto quando existe esse fator os valores quase sempre divergem em relação aos valores reais. Para esses casos pode-se usar o Alisamento Exponencial Linear que desenvolvido com a intenção de reconhecer a presença de tendência nas séries.

Tornando a PST mais condizente com a realidade foi criado o Alisamento Exponencial Linear e Sazonal de Winter que além de detectar tendências também consegue manipular os ciclos sazonais presentes.

3.3.2 Conceito de Redes Neurais Artificiais

Um neurônio biológico é constituído essencialmente pelo corpo celular, responsável pelas funções celulares básicas como nutrição, reprodução etc.; de uma parte alongada chamada axônio e que é responsável pelo transporte de substâncias neurotransmissoras e dos dendritos que são ramificações do corpo celular responsável por captar e transmitir estímulos.

Monografias.com Figura 6: Neurônio Biológico

Fonte: http://opensvn.csie.org/leic/fsd-ei05011/pics/

Os dendritos de um neurônio quando próximos aos de outros originam as sinapses. Estas são regiões onde as extremidades das terminações nervosas estão próximas umas das outras a ponto de poderem transmitir impulsos de uma célula nervosa à outra. Esses impulsos podem ser químicos, através de substâncias chamadas neurotransmissores ou elétricas. Ao complexo conjunto de neurônios e suas conexões sinápticas dá-se o nome de rede neural.

De maneira análoga, as redes neurais artificiais são compostas de neurônios artificiais que são representações matemáticas de seus correspondentes biológicos.

Segundo Carvalho (2009) "Redes Neurais Artificiais são técnicas computacionais que apresentam um modelo matemático inspirado na estrutura neural de organismos inteligentes e que adquirem conhecimento através da experiência".

Para Padua Filho (2003) as RNAs tentam reproduzir as funções das redes biológicas, buscando implementar seu comportamento básico e sua dinâmica.

O funcionamento de uma RNA é semelhante ao das redes neurais biológicas. Basicamente há neurônios responsáveis pela captação de dados ou estímulos externos; neurônios intermediários, que processam os dados de entrada baseando-se nos seus pesos sinápticos (o que em biologia corresponderia à intensidade da conexão de um neurônio a outro) e repassam o resultado para o neurônio seguinte. O ciclo se repete até que se chegue a um neurônio de saída. Este, por sua vez pode devolver o valor obtido ao mundo externo ou fornecê-lo como entrada para outra rede.

Tipicamente os neurônios artificiais são agrupados em camadas. A camada de entrada é responsável por captar os estímulos apresentados à rede. As camadas intermediárias, através dos pesos atribuídos às suas ligações, são responsáveis pela maior parte do processamento e são consideradas como extratoras de características. A camada de saída poderá retornar um processamento final ou fornecer o valor obtido como entrada para outros neurônios (CARVALHO, 2009).

Monografias.com

Figura 7: Modelo de Rede Neural Artificial

Fonte: http://www.cerebromente.org.br/n05/tecnologia/rna.htm

Segundo Lima (2008) as RNA constituem um método, para a solução de problemas, que se baseia no comportamento do cérebro, aprendendo, errando e fazendo descobertas. Elas se baseiam em organismos biológicos inteligentes e adquirem conhecimento através da experiência. Todavia, ao passo que uma RNA possui centenas ou milhares de unidades de processamento, o cérebro de um mamífero possui bilhões.

Isso nos leva a concluir que a quantidade de unidades de processamento e a complexidade das conexões entre elas definem como seus pesos sinápticos serão ajustados e conseqüentemente a exatidão com que ela irá resolver o problema apresentado.

3.3.3 Uso de Redes Neurais Artificiais na Previsão de Séries Temporais

Modelos estatísticos, por se tratarem de métodos puramente probabilísticos requerem um conjunto bem definido de fatores para a eficácia da previsão. Infelizmente esses fatores nem sempre podem ser definidos e muito menos quantificados. Razão esta que coloca as redes neurais um passo a frente das técnicas convencionais por dois motivos: o primeiro porque as redes neurais são extremamente aptas a detectar padrões de comportamento a partir de dados previamente conhecidos, sendo muito pouco influenciadas por ruídos, muito presentes em situações reais. Sendo o segundo motivo o fato de adaptarem seu comportamento de acordo com o comportamento dos dados, sem que, com isso, tenham que mudar sua própria estrutura.

Os métodos estatísticos têm boa eficácia na previsão quando aplicados em modelos relativamente simples, mas têm deficiências significativas quando se trata de modelos mais complexos como citado por Cortez:

Métodos convencionais de PST criam os seus modelos com base em componentes da série temporal como a tendência ou a sazonalidade. Este tipo de abordagem é aplicável a séries bem comportadas, mas falha quando estas apresentam ruído ou com componentes não lineares

(CORTEZ, 2006, p. 4)

Sendo assim, não seria exagerado dizer que as redes neurais são a melhor opção quando se tem que predizer o comportamento da maioria das variáveis do mundo real, onde os fatores aleatórios são freqüentes e inevitavelmente presentes.

3.3.4 O Algoritmo de Aprendizado Backpropagation

O algoritmo Backpropagation é o algoritmo de aprendizado mais largamente utilizado. Seu treinamento é baseado na diminuição do erro entre o valor de entrada e a saída produzida. Quanto menor a diferença entre o valor real e a saída gerada, mais treinada é considerada a rede.

Ao se apresentar um determinado padrão de entrada a uma rede neural não treinada e o respectivo padrão de saída, uma saída aleatória é produzida. A partir da saída produzida pela rede é calculado um erro, representando a diferença entre o valor obtido e o desejado. (MUELLER apud BEALE,1990).

A cada iteração do ciclo, o erro é calculado e propagado para todas as camadas da rede, os pesos da rede são reajustados continuamente, minimizado o erro. O processo continua até que a condição de parada seja atingida. Essa condição pode ser um número finito de iterações, até que o erro atinja um valor pequeno e aceitável ou mesmo quando a diferenças entre os erros não forem significativas.

Cada neurônio na rede possui uma entrada e uma saída. O algoritmo possui esse nome porque o ajuste dos pesos inicia-se na camada de saída e propaga-se para as camadas mais internas da rede. A camada de saída tem seus pesos ajustados com base na diferença entre a sua saída e o valor que serviu de treinamento. A partir daí, cada neurônio da camada anterior tem seus pesos ajustados com base no erro entre o valor da camada de saída (que foi ajustado) e o valor produzido pelo neurônio dessa camada. O processo se repete até que todos os pesos tenham sido ajustados proporcionalmente ao erro produzido. Assim, quanto menor a diferença entre o valor produzido e o valor esperado menor será a correção nos pesos sinápticos.

Quando o erro produzido estiver dentro de um limite aceitável considera-se que a rede está treinada, pois foi capaz de reconhecer o padrão de geração dos dados e está apta a produzir uma saída relativamente correta. A partir de então se pode usar a rede para simular os valores futuros de uma série temporal.

Resumidamente, os passos do Backpropagation são os seguintes:

1 – Apresente um valor de exemplo à rede neural cujos pesos iniciais foram estabelecidos aleatoriamente.

2 – A rede irá gerar uma saída aleatória.

3 – Calcule a diferença entre o valor gerado e o valor de exemplo.

4 – Para cada neurônio, anterior à camada de saída, calcule qual a saída que deveria ser produzida para produzir a saída do exemplo.

5 – Ajuste os pesos de cada um desses neurônios, de acordo com o erro e o seu grau de participação (peso) na saída produzida.

6- considere cada neurônio como se fosse o neurônio de saída e o valor de saída como se fosse o exemplo fornecido. Repita os passos 3, 4, 5 e 6 para a camada anterior até que todos os neurônios tenham sido ajustados.

7 – quando o erro produzido for aceitável ou outra condição de parada for satisfeita a rede está treinada e pronta para ser usada.

O diagrama abaixo ilustra o funcionamento do algoritmo.

Monografias.comFigura 8: Diagrama do Backpropagation

Fonte: Autor

Para o desenvolvimento do projeto foi adaptada uma versão do algoritmo desenvolvida por Karsten Kutza para prever a incidência de manchas solares anuais. O algoritmo original pode ser encontrado em: (KUTZA 2009).

4 DESENVOLVIMENTO DO SISTEMA

4.1 Engenharia de Software

Devido à enorme importância dos sistemas de informação nos dias atuais e sua crescente complexidade, percebe-se a necessidade de regras e padrões que auxiliem na construção de softwares confiáveis, robustos e rápidos.

Entende-se por confiabilidade, a capacidade de um software realizar suas tarefas dentro de um padrão de qualidade previamente estabelecido. Entende-se por robustez, a capacidade do software se recuperar em decorrência de falhas, garantindo sua confiabilidade. E entende-se por rapidez a capacidade de processamento também dentro de um padrão conhecido.

Nesse âmbito, surge uma nova ciência, a "Engenharia de Software". A engenharia de software tenta criar maneiras, metodologias e processos para que o projeto do Sistema de informação(SI) seja bem sucedido. Entende-se por bem sucedido atender aos requisitos de prazos, custos e necessidades dos clientes. Ela tenta contrapor a idéia de construção de software de maneira arbitrária, improvisada ou até mesmo "artística".

Os métodos de Engenharia de Software proporcionam os detalhes da construção de um software, e segundo Pressman (1995) os métodos envolvem um amplo conjunto de tarefas que incluem: planejamento e estimativa do projeto, análise de requisitos de software e de sistema, projeto da estrutura de dados, arquitetura de programa e algoritmo de processamento, codificação, teste e manutenção.

Nesse âmbito a Engenharia de Software tem por objetivo a melhoria dos processos de desenvolvimento de software. Para Pádua Filho (2003) um processo é um conjunto de passos parcialmente ordenados, constituídos por atividades, métodos, práticas e transformações, usado para atingir uma meta.

O processo de desenvolvimento de um software pode variar de acordo com suas características, assim, costuma-se adotar o termo "ciclo de vida" para se referir ao seu ciclo de desenvolvimento. Existem diferentes ciclos de vida, cada um especializado em cada tipo projeto, necessidades e recursos.

Basicamente, todos os ciclos de vida contam com as mesmas etapas: especificação de requisitos, análise, projeto, implementação, testes e implantação. O que diferencia um ciclo de vida do outro é a disposição dessas etapas. No ciclo de vida em cascata, que foi seguido no desenvolvimento do projeto, cada nova etapa é realizada apenas após a realização completa da etapa anterior. Já na prototipação evolutiva, todas as etapas são realizadas não na construção do produto final, mas sim na confecção de versões intermediárias, que serão refinadas a cada iteração do ciclo, até se chegar ao produto final.

Monografias.com Figura 9: O ciclo de vida clássico

Fonte: Pressman (1995)

4.2 Linguagem De Programação

A principal linguagem de programação usada na construção do sistema foi o Java, pois trata-se de uma linguagem amplamente conhecida, segura e robusta. Suporta totalmente o paradigma orientado a objetos e é multi-plataforma.

Foi criado pela Sun Microsystems em 1992 com o objetivo ser a linguagem de desenvolvimento para dispositivos eletrônicos portáteis, como computadores de bolso e celulares. No entanto, perto de 1995, com o desenvolvimento da internet, viu-se um grande potencial na criação de conteúdo dinâmico nas páginas da World Wide Web(WWW). Hoje o Java conta com mais de dois milhões de desenvolvedores espalhados pelo mundo e é responsável por 20% de todos os programas desenvolvidos até agora.

O sucesso do Java se deve basicamente à facilidade de programação (Semelhante ao C++), ao paradigma orientado a objetos e sua portabilidade.

O Java foi concebido inicialmente para ser executado sobre dispositivos portáteis, o que levou seus desenvolvedores a criarem uma maneira homogênia para o desenvolvimento dos aplicativos sem que as características específicas de cada dispositivo tivessem que ser levadas em conta. Isso proporcionou a criação do conceito de máquina virtual, os programas em Java são compilados para serem executados sobre uma máquina virtual. Sendo assim, um programa escrito nessa linguagem pode ser executado em qualquer ambiente em que haja uma implementação para a máquina virtual Java. Isso inclui sistemas operacionais, dispositivos eletrônicos ou até mesmo circuitos integrados.

4.3 Banco de Dados

O Sistema gerenciador de Banco de Dados (SGBD) surgiu em 1960 tendo em sua base os princípios primitivos de sistemas de arquivos disponíveis na época, os quais não controlavam o acesso concorrente por vários usuários ou processos. Assim os SGBDs evoluíram de sistemas de arquivos de armazenamento em disco, criando novas estruturas de dados com o objetivo de armazenar informações. Com o tempo, os SGBD"s passaram a utilizar diferentes formas de representação, ou modelos de dados, para descrever a estrutura das informações contidas em seus bancos de dados. (TAKAY, ITALIANO, FERREIRA, 2005).

Um Sistema Gerenciador de Base de Dados (SGBD) é uma coleção de programas que permitem aos usuários criarem e manipularem uma base de dados. Um SGBD é, assim, um sistema de software de propósito geral que facilita o processo de definir, construir e manipular bases de dados de diversas aplicações. (TAKAY, ITALIANO, FERREIRA, p. 15, 2005).

Desse modo, os SGBDs abstraem as tarefas intermediárias de acesso e gravação dos dados permitindo que os desenvolvedores não se preocupassem com os detalhes referentes ao armazenamento de dados, economizando tempo de desenvolvimento e evitando falhas em decorrência de uma má implementação dos mecanismos de persistência.

A figura abaixo demonstra a interação dos vários componentes de um sistema de informação com o sistema de banco de dados.

Monografias.com Figura 10: Interdependência dos sistemas de banco de dados

Fonte: http://e-reality-database.blogspot.com/2008/09/sistema-gerenciador-de-banco-de-dados.html

Optamos aqui por usar o PostgreSQL como Sistema gerenciador de banco de dados, por se tratar de um SGBD robusto e de código aberto, atendendo perfeitamente às exigências do software sem que haja necessidade de investimentos em licenças além de que, por pertencer a uma comunidade competente e ativa está em contínuo aprimoramento.

O sistema gerenciador de banco de dados objeto-relacional hoje conhecido por PostgreSQL, é derivado do pacote POSTGRES escrito na Universidade da Califórnia em Berkeley. Com mais de uma década de desenvolvimento por trás, o PostgreSQL é atualmente o mais avançado banco de dados de código aberto disponível em qualquer lugar. O POSTGRES foi pioneiro em vários conceitos que somente se tornaram disponíveis muito mais tarde em alguns sistemas de banco de dados comerciais.( OLIVEIRA, 2005).

O PostgreSQL implementa grande parte do padrão SQL:2003 que é o padrão definido pela American National Standards Institute (ANSI) com o objetivo de ser a linguagem padrão para os SGBDs relacionais.

4.4 Padrões de Projetos

Para Sommerville (2003) ""o padrão" é uma descrição do problema e a essência da sua solução, de modo que, a solução possa ser reutilizada em diferentes casos". Ainda segundo o autor o padrão pode ser considerado não como uma especificação detalhada, mas sim como uma descrição de conhecimento e da experiência acumulada.

Os padrões de projeto são boas práticas, pois evitam que partes recorrentes do software sejam desenvolvidas novamente, gastando-se recursos e dificultando futuras modificações.

Conceitos como o desenvolvimento em camadas, a orientação a objetos e a reutilização são bons exemplos de padrões e projeto.

Deitel (2003) ao falar sobre a reutilização, cita: "a vantagem de criar suas próprias classes e métodos é que você sabe exatamente como funcionam. A desvantagem é o consumo de tempo e a complexidade do esforço necessário para projetar e desenvolver seu próprio código".

O sistema foi criado visando um algo grau de re-aproveitamento de código, classes como a consulta padrão e o cadastro padrão podem ser utilizados em qualquer parte do sistema sem que haja necessidade de modificar seu funcionamento. Várias rotinas foram padronizadas, como criação de consultas, menus e relatórios. Além disso, diversas classes de base e rotinas comuns foram desenvolvidas evitando assim que fossem re-escritas ao longo do sistema.

O desenvolvimento em camadas consiste na separação entre as diversas partes de um software de acordo com suas responsabilidades. Isso permite uma nítida separação entre a apresentação das informações ao usuário e seu processamento interno. Essencialmente, o desenvolvimento em camadas capacita a alteração de cada parte sem que, contudo, outras partes interdependentes tenham que ser remodeladas, criando enormes vantagens quando se trata de sistemas em constantes mudanças em suas regras de negócios. Durante o desenvolvimento foi empregado o padrão em três camadas, que separa as camadas de visão, de controle e de persistência, representando a saída ao usuário, o processamento das regras de negócio e o banco de dados, respectivamente.

5 METODOLOGIA DE PESQUISA.

A produção de sistemas de previsão é uma prática voltada para o desenvolvimento de tecnologias que auxiliem na tomada de decisão de um gestor, assim, devido à constante demanda por sistemas desse tipo é necessária a exploração de novas técnicas visando fornecer novas ferramentas ao mercado.

A metodologia aplicada no desenvolvimento é exploratória, de caráter experimental, pois visa à construção e experimentação de uma aplicação para a previsão de consumo em qualquer situação onde haja históricos desse tipo.

As pesquisas na área de Inteligência Artificial e de Séries Temporais foram de absoluta necessidade para que fosse possível a implementação do sistema. Para o desenvolvimento do sistema o algoritmo Backpropagation foi estudado e posteriormente adaptado às necessidades do sistema.

Também foi desenvolvida uma aplicação que simula um sistema de gestão comum, visando demonstrar sua eficácia de forma concreta.

Ao final do desenvolvimento do sistema, a funcionalidade referente à PST foi cuidadosamente testada. Foram criados ensaios que foram discutidos no trabalho visando demonstrar o funcionamento correto do sistema.

6 RESULTADOS E DISCUSSAO

6.1 O Sistema

O sistema foi construído para simular um ERP sendo o módulo responsável pelo controle do faturamento da empresa o abordado nesse trabalho. Para tal, algumas características comuns e importantes dos ERPs foram observadas e desenvolvidas.

 

Monografias.com

Figura 11: Tela Inicial do Sistema

Fonte: Autor

A capacidade de adaptação do software teve uma atenção especial visto que é de fundamental importância que a empresa consiga adaptá-lo de acordo com seus processos. Isso se justifica, pois, apesar dos processos serem os mesmos, dificilmente seus detalhes são os mesmos para todas as empresas.

Segundo Consentino et al.(2001, p.125) "Um sistema aplicativo vale mais pela sua flexibilidade do que pela sua abrangência. A flexibilidade é a parte mais difícil do desenvolvimento. Fazer um sistema engessado é fácil e rápido, difícil é fazê-lo customízável e localizável para outros paízes."

Dentre os diversos recursos do sistema podemos citar:

  • Capacidade de customização. Através de parâmetros, e até mesmo por meio dos recursos da Orientação a objetos (possibilitando a re-escrita de partes do sistema) é possível adaptar os programas já prontos à necessidade do usuário.

  • Facilidade na definição de acessos aos usuários. Permissões podem ser concedidas e negadas a qualquer grupo ou usuários a qualquer momento.

Monografias.com

Figura 12: Definição dos acesso dos grupos e dos usuários

Fonte: Autor

  • Possibilidade de agregação de novas funções ao sistema. Novas funcionalidades podem ser desenvolvidas usando as classes de base desenvolvidas no projeto para definir suas próprias rotinas e integrá-las ao sistema.

Monografias.com

Figura 13: Acrescentado funcionalidades ao Sistema

Fonte: Autor

  • Facilidade na criação de consultas e relatórios. É possível, de forma fácil, criar novos relatório e consultas e incorporá-las ao sistema, bastando para isso que sejam criadas as rotinas de consulta ao dados. Posteriormente as novas consultas e relatórios podem ter seu acesso controlado a um grupo ao a um usuário específico.

Monografias.com

Figura 14: Tela de consulta padrão do sistema.

Fonte: Autor

Monografias.com Figura 15: Demonstração do menu do usuário com acesso à uma consulta.

Fonte: Autor

  • Criação de componentes visando agilidade no desenvolvimento de novas funções. Foram desenvolvidos diversos componentes que possibilitam a criação mais ágil de novas funcionalidades ou até mesmo na customização das rotinas já prontas.

  • Criação de telas de entrada de dados baseada em dicionário de dados. Cadastros básicos correspondem a uma grande parte de um sistema de informação. Pensando na economia de recursos gerada, foi desenvolvida uma ferramenta que capaz de montar cadastros dinamicamente, baseando sua estrutura em um dicionário de dados fornecido. A figura abaixo demonstra o cadastro de produtos, criado a partir de seu dicionário de dados

Coluna

Validação

Referencia

Tipo

CODIGO

Não nulo

 

Inteiro

DESCRIÇAO

5 ou mais caracteres

 

Texto

GRUPO

 

Tabela de grupo

Inteiro

UN. MEDIDA

 

Tabela de Unidades

Inteiro

TIPO

 

Tabela de tipos

Inteiro

QTD. ATUAL

 

 

Inteiro

Quadro 1: Dicionário de dados do produto:

Fonte: Autor

Monografias.com

Figura 16: Cadastro de Produtos, criado a partir do dicionário de dados

Fonte : Autor

6.2 Previsão de Consumo

Tendo em vista a dificuldade de se encontrar históricos sobre a demanda de produtos foram utilizados dados referentes ao consumo nacional de certos grupos de produtos. Esses dados estão disponíveis em:

https://www3.bcb.gov.br/sgspub/localizarseries/localizarSeries.do?method=prepararTelaLocalizarSeries.

No entanto, o sistema se presta à previsão de qualquer tipo de consumo. Desde que haja um histórico com dados suficientes para treinar o sistema.

Os dados coletados são referentes ao consumo de produtos das classes móveis, produtos alimentícios, veículos e vestuário, disponibilizados mês a mês de Janeiro de 2000 até Abril de 2009.

 

Para demonstrar a eficácia do método, foram criadas previsões com base nos últimos 12 meses. Sendo assim, podemos comparar a previsão gerada com os dados reais e medir o erro na previsão.

 

Abaixo temos o gráfico da demanda de mobília no período supracitado:

Monografias.com Figura 17: Gráfico da compra de Móveis de jan/2000 a abr/2009.

Fonte: Autor.

Como se pode ver, o gráfico apresenta grande sazonalidade, além de uma leve tendência de crescimento.

A figura abaixo demonstra a previsão para os últimos 12 meses:

Monografias.comFigura 18 Previsão de compra de móveis de mai/2008 a abr/2009.

Fonte: Autor.

Como era de se esperar o sistema foi capaz de fornecer uma estimativa do consumo nesse período. Nesse caso temos 10% de erro entre o consumo real e o previsto.

Da mesma forma temos o gráfico com o consumo referente ao supermercado. Novamente percebemos sazonalidades juntamente com uma leve tendência de crescimento.

Monografias.com Figura 19: Gráfico das compras em supermercado de jan/2000 a abr/2009.

Fonte: Autor.

E novamente temos um gráfico com boa capacidade de previsão, desta vez houve 8,86% de erro em relação à serie real.

Monografias.comFigura 20 Previsão de compras em supermercado de mai/2008 a abr/2009.

Fonte: Autor.

Vejamos agora o gráfico da compra de veículos para o mesmo período. Podemos perceber que este não apresenta ciclos ou sazonalidade, pode-se perceber também que devido a sua natureza aleatória não se pode dizer com certeza que apresenta uma tendência.

Monografias.com Figura 21: Gráfico das compras de veículos de jan/2000 a abr/2009.

Fonte: Autor.

Como era de se esperar a previsão não teve um desempenho tão bom quanto as anteriores. Enquanto tínhamos um erro médio de cerca de 9% esta nos traz uma previsão que está errada em 17.76% em relação à série real.

Monografias.comFigura 22: Previsão de compras de veículos de mai/2008 a abr/2009

Fonte: Autor

No entanto quando temos um gráfico como o abaixo, em que há padrões muito bem definidos e com baixa taxa de ruídos (aleatoriedade) a previsão é quase tão exata quanto os dados reais. Como pode ser observado nas duas figuras que se seguem:

Monografias.com Figura 23: Gráfico das compras de vestuário de jan/2000 a abr/2009

Fonte: Autor

A previsão abaixo demonstrou o melhor resultado tendo uma margem de erro de cerca de 5,5%, o que é uma excelente previsão.

Monografias.comFigura 24 Previsão de compras de vestuário de mai/2008 a abr/2009.

Fonte: Autor.

6.3 Dificuldades

Sem esquecer-se das dificuldades inerentes à adaptação do algoritmo e a própria criação do software, conseguir históricos razoáveis, onde fosse possível realizar simulações e testes a fim de ajustar o sistema foi a parte mais trabalhosa. Entretanto acredita-se que a maioria das empresas onde esse tipo de previsão é bem vinda, haja históricos bem estruturados de seus desempenhos passados, o que possibilita o uso efetivo da ferramenta.

Também vale lembrar que, por se tratar de um assunto bastante restrito, torna-se difícil a busca por referências. Isso torna o processo de pesquisa um tanto investigativo e menos metódico. Criando assim maior possibilidade de equívocos, o que demanda tempo para que sejam percebidos e corrigidos.

7 CONCLUSAO

A previsão de séries temporais é uma ferramenta de grande ajuda na tomada de decisão. Criar modelos de previsão com boa taxa de acerto é essencial para que haja um planejamento correto dos recursos.

Foi provado que o algoritmo Backpropagation é bastante eficiente na previsão do comportamento de séries temporais. Baseado em redes neurais, sua capacidade de aprendizado na detecção de padrões o coloca à frente dos métodos convencionais de PST. Seu uso é simples, bastando-se fornecer exemplos para que consiga prever novos valores.

Enquanto outros métodos são restritos a determinadas circunstâncias o Backpropagation se sai bem na presença de ciclos, tendências e sazonalidades. E, apesar de observações aleatórias diminuírem seu desempenho ele ainda é capaz de manter o seu desempenho em um nível razoável.

REFERÊNCIAS

CARVALHO, André Ponce de Leon F. de . Redes Neurais Artificiais. Disponível em < http://www.icmc.usp.br/~andre/body.htm> Acesso em: 14 abr. 2009.

CONSENTINO, Laércio; HABERKORN, Ernesto; CÍCERO, Fernando. Genoma Empresarial. 2. ed. EditoraGente, 2001.

CORTEZ, Paulo Alexandre Ribeira. Algoritmos Genéticos e Redes Neuronais na Previsão de Séries Temporais. Disponível em: Acesso em:19 abr. 2009.

DEITEL, H. M. Java, como Programar. 4 ed. Porto Alegre:Bookman, 2003.

DICIONÁRIO UNIVERSAL DE CONTEÚDO LIVRE. Informação. Disponível em: . Acesso: 19 mai. 2009.

EHLERS, RICARDO S., Analise e Series Temporais. Disponível em: < http://pt.wikipedia.org/wiki/S%C3%A9rie_temporal> Acesso em: 03 mar 2009.

GOLFINHO. Glossário De Termos De Pnl. Disponível em: < http://www.golfinho.com.br/artigospnl/glossariopnl.asp >. Acesso em: 20 mai 2009.

KUTZA, Karsten. Algoritmo Backpropagation em c++. Disponível em < http://www.neural-networks-at-your-fingertips.com/bpn.html> Acesso em: 15 abr. 2009.

LIMA, Gildário Dias. Redes Neurais. Disponível em: < http://www.gildario.com.br/index.php?option=com_content&view=article&id=63&Itemid=65>. Acesso em: 19 maio 2009.

MORETTIN, Pedro Alberto; TOLOI, Clélia Maria de Castro. Modelos para Previsão de Séries Temporais. In : 13° Colóquio Brasileiro de Matemática. Rio de Janeiro, 1981.

MUELLER, Alessandro. Uma aplicação de redes neurais artificiais na previsão do mercado acionário. Disponível em: < http://www.eps.ufsc.br/disserta96/mueller/index/index.htm#sumario>. Acesso em: 20 jun 2009.

OLIVEIRA, Halley Pacheco, Documentação do PostgreSQL 8.0.0. Disponível em: < http://sourceforge.net/projects/pgdocptbr/> Acesso em: 29 dez. 2005

PAULA FILHO, Wilson de Pádua. Engenharia de software: fundamentos, métodos e padrões. 2. ed. Rio de Janeiro: Livros Técnicos e Científicos, 2003.

PRESSMAN, Roger S. Engenharia de software. São Paulo: Makron Books, 1995.

SILVA, Fabrício Leandro, Importância de um data-mart, Minas Gerais:Centro Universitário do Leste de Minas gerais, 2005.

TAKAI, Osvaldo Kotaro; ITALIANO, Isabel Cristina; FERREIRA, João Eduardo. Introdução a Banco de Dados. Disponível em: < http://www.ime.usp.br/~jef/apostila.pdf> Acesso em: 23 out. 2008.

VAITSMAN, Hélio Santiago. Inteligência Empresarial - Atacando e Defendendo. Rio de Janeiro: InterCiência, 2001.

SOMMERVILLE, Ian. Engenharia de Software. São Paulo: ABDR, 2003.

WHEELWRIGHT, Steven C.; MAKRIDAKIS, Spyros. Forecasting Methods for Management. 4th edition. New York : John Wiley & Sons Inc, 1985.

APENDICE

APÊNDICE A: Documentação do Sistema

Introdução

Prever consumo em estoque, apesar de primordial é sempre difícil. Na maioria das vezes, cálculos de médias de consumo não são o suficiente e cabe ao gestor usar de seu bom senso e experiência para investir no estoque da empresa. Investimento esse que, se mal dimensionado, pode comprometer o capital disponível para o crescimento de outras áreas ou corre-se o risco da falta de produto quando a demanda aumenta.

Descrição do Mini-mundo do Projeto

Normalmente, quem administra o estoque é responsável por acompanhar as tendências de consumo e estimar, com certa precisão, qual será a demanda para o próximo período. Para isso ela se cerca de ferramentas como gráficos de consumo, médias, médias ponderadas, estimativas e pesquisas; leva em consideração fatores sazonal e as tendências do mercado.

Porém os métodos utilizados geralmente são complexos e dependem muito da experiência e intuição do gestor para surtirem efeito. Sendo assim, não é possível dizer com certeza que o investimento é suficiente, excedente, ou inferior a demanda do mercado.

 

Desta maneira faz-se necessário de ferramentas que sejam capazes de integrar todo esse "armamento" e possa dizer com certo grau de exatidão qual será o investimento necessário para cumprir as necessidades dos clientes.

A experiência do gestor é fundamental e não deve ser desconsiderada, no entanto, uma vez que ele possa automatizar a tarefa de coletar dados e fazer suas estimativas há, para ele, a chance de desviar seu poder crítico e criativo para detalhes que até então passavam despercebidos pela falta de tempo.

Delimitação do Projeto

Lista de funções do Projeto

Número de ordem

Tipo

Nome da função

Descrição

Tempo estimado

Tempo realizado

1

2

Controle de acessso

Controla os acessos às funcionalidades do sistema

25 horas

 

2

1

cadastro de fornecedores

 

Reúne as informações dos fornecedores

4horas

 

3

1

cadastro de grupos de categoria / subcategorias

Cadastro de categorias e subcategorias de produtos

5 horas

 

4

 

Criação automática de cadastros

 

40

 

5

1

cadastro de produtos

Cadastro principal do sistema, reunirá as principais atribuições dos produtos em estoque

6 horas

 

6

2

registro de clientes

Cuida das interações necessárias às informações dos cliente

6 horas

 

7

2

controle de saida de produtos

Controla as operações referentes à saída de estoque como vendas, perda, vencimento...

20 horas

 

8

2

controle de entrada de produtos

Controlará as operações referentes à entrada de produtos em estoque

10 horas

 

9

2

controle de pedidos de compra

Permite ao gestor programar o pedido de compra baseado em produtos em vencimentos, produtos em qtd mínima ou produtos sazonais.

20 horas

 

10

2

controle de pedidos de venda

Será responsável por efetuar as venda e retiradas de produtos no estoque

7 horas

 

11

2

Previsão de consumo dos produtos

Controle responsável por prever o consumo de determinado produto em um período de tempo

40 horas

 

12

2

Relatório de Compras

Mostra as compras feitas pela empresa

4 horas

 

13

2

Relatório de Vendas

Mostra o cliente, as compras e os produtos de cada compra

4 horas

 

14

2

Relatório de parcelas a pagar

Mostra todas as contas a pagar da empresa com suas respectivas parcelas em aberto

4 horas

 

 

 

15

2

Relatório de parcelas a receber

Mostra todas as contas a receber da empresa com cliente, compra e parcelas

4 horas

 

Tipo: 1 – Cadastro 2 – Controle 3 – Relatório

Restrições do Projeto (Limites do Produto)

  • O sistema não irá trabalhar com procedimentos contábeis ou fiscais

  • Análise de Risco do Projeto

    Riscos

    Probabilidade ocorrer

    Estratégias redução de riscos

    Inviabilidade de uso das redes neurais para estimativas.

    Alta

    Se ocorrer, recorrer a técnicas de previsão de series temporais por meio de estatítica.

    Necessidades de hardware e software

    • Computador com processador de 1.5 Gz com 512 MB de Memória Ram ou superior.

    • Máquina Virtual Java 1.6 ou superior

    • Java SE Development Kit (JDK) 1.6

    • PostgreSQL 8 ou superior

    • Netbeans  6.5

    • Cronograma do Projeto

      O projeto seguirá as seguintes etapas, distribuídas conforme a tabela abaixo:

      • 1. Levantamento e Especificação dos Requisitos do sistema;

      • 2. Análise do sistema (com construção da documentação necessária);

      • 3. Projeto do sistema (projeto de interface, projeto de banco de dados, etc);

      • 4. Implementação dos cadastros;

      • 5. Implementação das funções de controle;

      • 6. Implementação dos relatórios;

      • 7. Testes;

      • Cronograma físico (baseado nos itens citados anteriormente).

        Itens\Mês

        Setembro

        Outubro

        Novembro

        Dezembro

        Janeiro

        Fevereiro

        Março

        1

        2

        3

        4

        5

        6

        7

        Custo Total do Projeto

        Tempo total do projeto = 193 horas

        Depreciação dos equipamentos(2500R$) = 25% a.a, 1/3 de ano = 208 R$

        Acesso à internet do período = 80 * 4 = 320R$

        Pagamento do analista = 283 * 20R$ = 3860R$

        Materiais utilizados = ~300

        Custo Total = 4688

        Preço de Venda do software = 4688+ 20% de lucro = 5625$

         

        Documentação do Projeto

        Materiais de referencia

        Tipos de Material

        Referência

        Documento

        Artigos.

        Documento

        Ficha de cadastro.

        Documento

        Cupom fiscal.

        Relatório

        Plano do projeto.

        Requisitos de Software

        Descrição dos Atores

        Num.

        Nome

        Descrição

        Freqüência de Uso

        Proficiência em Informática

        1

        Administrador

        É o responsável por desenvolver relatórios e novos programas para agregar ao sistema. Além de configurar o sistema, criar usuários e associar as funcionalidades que cada um terá acesso.

        Diária

        Altíssima

        2

        Usuários

        Pessoas que irão usar o sistema, de acordo com as funcionalidades associadas a cada um deles.

        Diária

        Média

        Casos de Uso

        Monografias.com

        Requisitos Funcionais

        [RF001] Efetuar Login

        Pré condições:

        • 1. O usuário está cadastrado

        Fluxo principal:

        • 1. O sistema recebe os dados necessários para efetuar o login do usuário.

        • 2. Se os dados forem válidos o usuário tem acesso aos recursos personalizados para ele.

        • 3. Se os dados não forem válidos o sistema emite uma mensagem informando o engano.

        [RF001] Cadastro de Clientes

        Pré-condições:

        • 1 O sistema está em modo de cadastro

        Fluxo Principal:

        • 1. O Sistema exibe a interface de Cadastro de Clientes

        • 2. O usuário informa a opção desejada

        Fluxo alternativo Inserção de Cliente

        • 1. O usuário informa os dados do cliente

        • 2. Se o usuário acionar o comando "Salvar"

        •  O sistema verifica os dados

        •  Se houver registro duplicado, o sistema emite uma mensagem de erro

        •  Se não houver erros, o sistema armazena os dados do cliente.

        • 3. Se a atendente acionar o comando "cancelar" 3.1 A inserção é cancelada e a interface volta para seu estado inicial

        Fluxo alternativo Alteração de Cliente

        • 1. A atendente seleciona o cliente que deseja alterar.

        • 2. A atendente informa os dados a serem alterados no cliente.

        • 3. Se a atendente acionar o comando "Salvar"

        •  O Sistema altera os dados do cliente.

        • 4. Se a atendente acionar o comando "Cancelar"

        •  A alteração é cancelada e a interface volta ao seu estado inicial

        Fluxo alternativo Exclusão de Cliente

        • A atendente seleciona o cliente que deseja excluir.

        • O Sistema emite mensagem confirmando a exclusão

        • Se a atendente a confirmar a exclusão

        • O sistema marca o registro como excluído e não pode mais ser feitas vendas para o cliente.

        • Se a atendente não confirmar a exclusão

        • A exclusão é cancelada e a interface volta para seu estado inicial.

        Fluxo Alternativo Pesquisa de Clientes

        1. atendente informa uma ou mais características do cliente

        2. sistema executa a pesquisa do cliente

        3. O sistema exibe uma lista de clientes que atendem às características informadas

        4. A atendente seleciona o cliente desejado

        5. O sistema exibe as informações do cliente selecionado

        [RF005] Previsão de consumo

        Pré-condições:

        1.Os produtos estão cadastrados

        2.Existem varias saídas anteriores para os produtos

        Fluxo Principal:

        1. O sistema exibe a interface de Previsão de consumo

        2. O usuário seleciona os produtos para os quais queira prever o consumo, seleciona uma categoria de produtos, seleciona todos ou seleciona os produtos que estão com estoque menor que a unidade mínima

        3. O usuário seleciona a quantidade de dia que queira prever o consumo

        4. Para cada produto

        4.1 O sistema cria um gráfico do consumo dos últimos 12 meses e o gráfico do consumo para os dias selecionados

        4.2 O sistema calcula a quantidade que será consumida

        4.3 O sistema exibe o consumo estimado para o período bem como a media para o mesmo período.

         

        [RF013] Relatório de vendas

        Pré-condições:

        1 - O sistema está em modo de emissão de relatórios

        Fluxo principal:

        1. O usuário informa o intervalo de datas

        2. O usuário aciona o comando "Gerar Relatório"

        3. Para cada cliente o sistema exibe os dados das compras

        3.1 Para cada compra o sistema exibe os dados dos itens das vendas

        4. O sistema exibe o resumo da compra

        5. Se o usuário acionar o comando imprimir

        8. O relatório gerado será enviado para a impressora.

        9. Se o usuário acionar o comando "Fechar":

        9.1 – A interface de exibição do Relatório será fechada.

        Requisitos Não Funcionais

        Usabilidade

        [NF001] Interface com o Usuário

        O sistema deve prover uma interface amigável e intuitiva

        Prioridade: Importante.

        [NF002] Feedback

        Todos os processamentos do sistema trazem informações sobre o andamento do processo

        Prioridade: Importante

        [NF003] Escalabilidade

        O usuário pode desenvolver novos programas, relatórios e procedimentos e integrá-los ao sistema.

        Prioridade: Importante

        Confiabilidade

        [NF004] Backup do Banco de Dados

        O sistema, em intervalos determinados efetuará backup de todo o banco de dados em local pré-determinado pelo usuário.

        Prioridade: Importante.

        [NF005] Privacidade de Acesso

        Todos os usuários precisam ser identificados antes de usarem o sistema. Isso garante que somente pessoas autorizadas vejam certos conteúdos.

        Prioridade: Essencial.

        [NF005] Log de alterações

        Todas as ações tomadas no sistema são gravadas juntamente com a data o usuário responsável

        Prioridade: Essencial.

        Padrões

        Esta seção descreve os requisitos não funcionais associados a padrões ou normas que devem ser seguidos pelo sistema ou pelo seu processo de desenvolvimento.

        [NF006] Padrões de projeto

        O sistema conta com interfaces e rotinas padronizadas como pesquisas, cadastros e controles fornecendo meios de se criar rapidamente novas funcionalidades bem como favorecer o aprendizado do usuário pela repetição de elementos padronizados.

        Prioridade: Importante.

        [NF007] Linguagem de Implementação

        O sistema será desenvolvido em Java, orientado à objetos e em 3 camadas.

        Prioridade: Importante.

        [NF008] Banco de Dados

        O sistema usará o Hibernate como camada intermediaria entre o SGBD e a camada persistente, o que possibilita a troca de banco de dados sem a necessidade alteração do programa.

        Prioridade: Importante.

        [NF009] Geração de Cadastros

        O sistema irá gerar cadastros com base na definição de seus campos automaticamente.

        Prioridade: Desejável.

        Diagrama de Classes

        Monografias.com

        Diagramas de Seqüência

        Controle de vendas

        Monografias.com

        Relatório de clientes em débito

        Monografias.com

        Cadastro de produtos

        Monografias.com

        INTERFACES DO SISTEMA

        Autenticação do Usuário

        Monografias.com

        Tela Principal do Sistema

        Monografias.com

        Tela de Definição dos Menus do Sistema

        Monografias.com

        Contas de Usuários

        Monografias.com

        Definição dos Cadastros Padronizados do Sistema

        Monografias.com

        Cadastro Gerado Automaticamente

        Monografias.com

        Definicão das Consultas do Sistema

        Monografias.com

        Pesquisa Criada a Partir de Uma Consulta Salva

        Monografias.com

        Agrupar Dados

        Monografias.com

        Filtrar Dados

        Monografias.com

        Gerar Relatório a Partir da Pesquisa

        Monografias.com

        Relatório Padrão (Gerado a Partir da Pesquisa)

        Monografias.com

        Gráficos Gerados a Partir de Consultas ao Banco de Dados

        select floor((quantidade / 10))*10||$$ - $$|| floor((quantidade / 10)+1)*10 as classe , count(*) from itensvenda group by classe,floor((quantidade /10))*10 order by floor((quantidade / 10))*10

        Monografias.com

        select produto||' - '|| sum(quantidade) , sum(quantidade) from itensvenda group by produto

        Monografias.com

        Select $$Data $$||n1.emissao, qtd1,qtd2, qtd3 from(select produto, cast(substring(data, 4, 2) as integer) as emissao, sum(quantidade) as qtd1 from itensvenda group by emissao, produto order by emissao) as n1,

        (select produto, cast(substring(data, 4, 2) as integer) as emissao, sum(quantidade)as qtd2 from itensvenda group by emissao, produto order by emissao) n2,

        ( select produto, cast(substring(data, 4, 2) as integer) as emissao, sum(quantidade) as qtd3 from itensvenda group by emissao, produto order by emissao) n3 where

        n1.emissao = n2.emissao and n2.emissao = n3.emissao and n1.produto =$$Hipotético$$ and n2.produto = $$Mobíllia$$ and n3.produto = $$Vestuário$$

        Monografias.com

        DEDICATÓRIA

        Aos professores Francisco Reinaldo, Marcelo Balbino, Mauro Morais, Débora Pereira e Marcos Vinícius que contribuíram enormemente para o meu crescimento profissional e pessoal e a tantos outros mentores com quem tive breve contato, mas que provocaram grandes mudanças no meu modo de pensar.

        AGRADECIMENTOS

        Agradeço pelos meus amigos, que foram pessoas de essencial importância durante os momentos de decisão e com quem sempre pude contar. Agradeço em especial à Raquel Coelho, Marcelo Balbino, e a Maíra Moreira cuja convivência me trouxe energia, motivação e quem considero como exemplos de vida.

         

        Autor:

        Waldir De Oliveira Pinto

        waldirwop[arroba]gmail.com

        Professor Orientador: Francisco Antonio Fernandes Reinaldo

        Monografia apresentada ao departamento de Ciências Exatas do Centro Universitário do Leste de Minas Gerais como pré-requisito para obtenção do titulo de bacharel em Sistemas de Informação.

        CENTRO UNIVERSITÁRIO DO LESTE DE MINAS GERAIS – UnilesteMG

        Curso de Computação – Sistemas de Informação



 Página anterior Voltar ao início do trabalhoPágina seguinte 



As opiniões expressas em todos os documentos publicados aqui neste site são de responsabilidade exclusiva dos autores e não de Monografias.com. O objetivo de Monografias.com é disponibilizar o conhecimento para toda a sua comunidade. É de responsabilidade de cada leitor o eventual uso que venha a fazer desta informação. Em qualquer caso é obrigatória a citação bibliográfica completa, incluindo o autor e o site Monografias.com.