UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO – BACHARELADO FRAMEWORK MULTICORPORATIVO DE APOIO AO EXECUTIVO RUDIMAR IMHOF BLUMENAU 2012 2012/1-17 RUDIMAR IMHOF FRAMEWORK MULTICORPORATIVO DE APOIO AO EXECUTIVO Trabalho de Conclusão de Curso submetido à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso II do curso de Sistemas de Informação— Bacharelado. Prof. Marcel Hugo, Mestre - Orientador BLUMENAU 2012 2012/1-17 FRAMEWORK MULTICORPORATIVO DE APOIO AO EXECUTIVO Por RUDIMAR IMHOF Trabalho aprovado para obtenção dos créditos na disciplina de Trabalho de Conclusão de Curso II, pela banca examinadora formada por: Presidente: ______________________________________________________ Prof. Marcel Hugo, Mestre – Orientador, FURB Membro: ______________________________________________________ Prof. Roberto Heinzle, Doutor – FURB Membro: ______________________________________________________ Prof. Mauro Marcelo Mattos, Doutor – FURB Blumenau, 06 de julho de 2012. Dedico este trabalho a todos aqueles que depositaram confiança e que de uma forma ou de outra contribuíram para sua realização. AGRADECIMENTOS O presente trabalho é resultado do esforço das pessoas que em mim depositaram conhecimento e confiança e com sua colaboração aperfeiçoaram seu resultado final, dentre as quais, apesar de extensa lista, não posso esquecer, nem deixar de mencionar: Minha família, por terem sempre me auxiliado em todos os momentos que necessitei. Ao professor Adilson Vahldick, meu orientador no curso de Ciência da Computação, por ter em mim depositado confiança e agregado conhecimentos valiosos em relação à programação de sistemas bem como indicado, no caso deste trabalho, bibliografia relacionada à arquitetura de frameworks. Ao meu orientador, MSc. Marcel Hugo, por sua orientação, crítica e sugestão dos caminhos e alternativas, sem os quais por certo a conclusão deste trabalho não seria possível. À professora Janaina Poffo Possamai, por seus conhecimentos em estatística e otimização e seus esforços na busca de soluções relativas a esta área, motivo, muitas vezes, de dúvidas minhas com relação à modelagem matemática dos problemas propostos. Ao colaborador da empresa participante do estudo de caso e aqui não mencionado nome como opção do autor em consideração ao regime de capital não aberto adotado pela empresa, mas que ainda assim tem suas informações apresentadas em folha de assinatura a parte e que consta apenas na versão impressa do trabalho. A minha namorada e também revisora, Taira Franciele Skerke, pelo seu apoio e também auxílio na revisão ortográfica e gramatical. Aos membros da banca por suas possíveis críticas e sugestões, as quais certamente originaram melhorias a serem incorporadas ao resultado final deste trabalho. A todos, meu agradecimento. Mathematical reasoning may be regarded rather schematically as the exercise of a combination of two facilities, which we may call intuition and ingenuity. Alan Turing RESUMO O presente trabalho utilizou-se da relação entre as mudanças de mercado e as decisões corporativas para investigar conceitos científicos e tecnologias envolvidas na criação de uma ferramenta de apoio ao executivo. Dentre as etapas, iniciou-se a busca por informações relativas ao ambiente empresarial, como análise de custos, indicadores e Balanced Scorecard, como forma de situar os objetivos para a ferramenta desenvolvida, e então se seguiu à busca por informações estatísticas e algoritmos relacionados à inteligência artificial que contribuíssem para o modelo de desenvolvimento da ferramenta almejada. A ferramenta apresentada foi concebida sob a forma de um framework devido à característica que esses normalmente apresentam em relação ao reuso e baixo acoplamento. Assim, menciona-se também no decorrer do trabalho conceitos relativos à injeção de dependência e herança por abstração das características, conceitos estes relacionados à implementação de frameworks. Como resultados, obteve-se um framework utilizando de forma branda os conceitos anteriormente mencionados para que fossem abrangidos em sua totalidade através das escolhas de implementação, sem prejuízo aos demais conceitos levantados no decorrer do trabalho. Palavras-chave: Indicadores. Estatística. Framework. ABSTRACT This work study relationship between market changes and corporate decisions to investigate the scientific concepts and technologies involved in creating a toolkit to support the executive. Among the measures were sought information about the business environment, such as cost analysis, indicators and balanced scorecard as a way to locate targets for the developed tool, then the search was made of statistical information and algorithms related to artificial intelligence, which promote both the development model of the toolkit. The kit of tools have been constructed in the form of a framework, due to the characteristic that they generally have about the re-down and coupling. Therefore, in this work are also mentioned concepts of dependency injection by abstraction and inheritance of characteristics, concepts related to the implementation of these structures. As a result, we obtained a table with the concepts mentioned trying to play through the implementation of the application of the concept as a whole, without prejudice to other concepts related to this work. Key-words: Indicators. Statistics. Framework. LISTA DE FIGURAS Figura 1 – Indicadores de desempenho .................................................................................... 21 Figura 2 – Classificação de sistemas ........................................................................................ 28 Figura 3 – Relacionamento dos sistemas pelos níveis .............................................................. 30 Figura 4 – Arquitetura comum à concepção de um framework ............................................... 34 Figura 5 – Arquitetura do framework ....................................................................................... 39 Figura 6 – Diagrama de casos de uso para o framework .......................................................... 41 Figura 7 – Descritivo das fases ................................................................................................. 42 Figura 8 – Diagrama de sequência do framework .................................................................... 43 Figura 9 – Grafo de precedência de cálculos ............................................................................ 49 Figura 10 – Diagrama de atividades para fase projeções ......................................................... 52 Figura 11 – Diagrama de atividades para fase reajustes ........................................................... 54 Figura 12 – Diagrama de atividades para fase otimizações...................................................... 55 LISTA DE QUADROS Quadro 1 – Ponto de equilíbrio operacional ............................................................................. 20 Quadro 2 – Métodos de cálculo e atratividade dos indicadores ............................................... 23 Quadro 3 – Modelo de regressão linear simples....................................................................... 25 Quadro 4 – Modelo para problema de programação linear ...................................................... 26 Quadro 5 – Diferença entre os tipos de raciocínio ................................................................... 27 Quadro 6 - Requisitos funcionais ............................................................................................. 38 Quadro 7 - Requisitos não funcionais ...................................................................................... 38 Quadro 8 - Trecho de código para regressão linear .................................................................. 46 Quadro 9 - Trecho de código para obtenção do coeficiente de correlação............................... 47 Quadro 10 - Exemplo de operacionalidade do framework ....................................................... 61 LISTA DE SIGLAS BSC – Balanced Scorecard DI – Dependency Injection DM – Data Mining DSS – Decision Support System ERP – Enterprise Resource Planning ESS - Executive Support System IBC – Índice Benefício Custo IoC – Inversion of Control MIS – Management Information System MPE – Micro Pequena Empresa PB – Pay Back PF – Ponto Fischer PPL – Problema de Programação Linear ROIA – Retorno do Investimento Adicionado SAD – Sistema de Apoio a Decisão SAE – Sistema de Apoio ao Executivo SIE – Sistema de Informação Executiva SIG – Sistema de Informação Gerencial SPT – Sistema de Processamento de Transações TIR – Taxa Interna de Retorno VPL – Valor Presente Líquido VPLa – Valor Presente Líquido Anualizado SUMÁRIO 1 INTRODUÇÃO .................................................................................................................. 12 1.1 PROBLEMA ..................................................................................................................... 13 1.2 JUSTIFICATIVA .............................................................................................................. 13 1.3 OBJETIVOS ...................................................................................................................... 14 2 FUNDAMENTAÇÃO TEÓRICA .................................................................................... 15 2.1 FUNÇÕES DA EMPRESA............................................................................................... 15 2.1.1 Funções financeiras ......................................................................................................... 16 2.1.2 Funções administrativas .................................................................................................. 16 2.1.3 Funções comerciais ......................................................................................................... 17 2.1.4 Funções técnicas.............................................................................................................. 18 2.1.5 Funções contábeis ........................................................................................................... 18 2.2 GERÊNCIA DE CUSTOS ................................................................................................ 19 2.3 ELEMENTOS PARA TOMADA DE DECISÃO EXECUTIVA – OS INDICADORES 20 2.3.1 Indicadores de desempenho ............................................................................................ 20 2.3.2 Indicadores financeiros ................................................................................................... 22 2.3.3 Balanced Scorecard ........................................................................................................ 23 2.4 ESTATÍSTICA À TOMADA DE DECISÃO ................................................................... 24 2.4.1 Regressão linear .............................................................................................................. 24 2.4.2 Programação linear.......................................................................................................... 26 2.5 RACIOCÍNIOS E SEUS TIPOS – ELEMENTOS CONCEITUAIS À TOMADA DE DECISÃO .......................................................................................................................... 27 2.6 CLASSIFICAÇÃO DE SISTEMAS ................................................................................. 28 2.7 SUPORTE A DECISÕES ................................................................................................. 31 2.7.1 Paradigma construtivista – Metodologias multicritério .................................................. 32 2.7.2 Paradigma racionalista – Pesquisa operacional............................................................... 33 2.8 FRAMEWORK ................................................................................................................... 33 2.9 TRABALHOS CORRELATOS ........................................................................................ 35 3 DESENVOLVIMENTO .................................................................................................... 37 3.1 SISTEMA ATUAL ........................................................................................................... 37 3.2 ESPECIFICAÇÃO DOS REQUISITOS ........................................................................... 37 3.3 ARQUITETURA DO FRAMEWORK .............................................................................. 38 3.4 MODELO DE NEGÓCIOS .............................................................................................. 40 3.4.1 Diagrama de casos de uso ............................................................................................... 40 3.4.2 Fases do framework – Diagrama de sequência ............................................................... 41 3.5 UTILIZAÇÃO DOS RACIOCÍNIOS À TOMADA DE DECISÃO ................................ 43 3.6 PRODUÇÃO DO BSC ...................................................................................................... 44 3.7 IMPLEMENTAÇÃO ........................................................................................................ 44 3.7.1 Técnicas e ferramentas utilizadas.................................................................................... 44 3.7.1.1 Apache POI ................................................................................................................... 45 3.7.1.2 Waikato Environment for Knowledge Analysis - WEKA ........................................... 46 3.7.1.3 Apache Commons Math ............................................................................................... 47 3.7.2 Estrutura de funcionamento das fases ............................................................................. 48 3.7.2.1 Fase Metas .................................................................................................................... 48 3.7.2.2 Fase Projeções .............................................................................................................. 50 3.7.2.3 Fase Reajustes ............................................................................................................... 53 3.7.2.4 Fase Otimizações .......................................................................................................... 54 3.7.3 Operacionalidade da implementação .............................................................................. 56 3.8 RESULTADOS E DISCUSSÃO ...................................................................................... 61 4 CONCLUSÕES .................................................................................................................. 63 4.1 EXTENSÕES .................................................................................................................... 64 REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................. 65 12 1 INTRODUÇÃO “ [...] o Brasil era o destino perfeito para sua primeira fábrica de automóveis fora da Alemanha” (CORREA; MANO, 2011). Em meados de 1990, houve uma previsão de crescimento demasiado da indústria automobilística brasileira quando a DaimlerChrysler, fusão da alemã Daimler-Benz e a americana Chrysler, decidiu erguer uma fábrica no Brasil. Com o mercado em crescimento e expectativas acima da média, havia perspectivas de sucesso do empreendimento, o que não veio a se concretizar pois, a produção necessária, estimada em 70.000 unidades, atingiu somente 61.000 veículos modelo Classe A, o que gerou à MercedezBenz perdas acumuladas em $ 500.000.000. Nesse caso, é possível concluir que ocorreu algum erro no processo de tomada de decisão por parte da Mercedez-Benz, o que poderia ser evitado se utilizadas ferramentas que permitissem ao executivo vislumbrar dados numéricos e indicadores que apoiassem sua decisão para que esta fosse a mais realista e objetiva possível. O apoio à decisão executiva encontra relações as mais diversas no ambiente empresarial. Segundo Stair e Reynolds (2011, p. 401) “um dos papéis-chave dos executivos é fornecer uma ampla visão para toda a organização. Essa visão inclui as mais importantes linhas de produtos e serviços da organização, os tipos de negócios que ela apoia hoje e no futuro e seus objetivos principais”. Através das funções empresarias que se constituem como as grandes áreas relativas à empresa, é possível avaliar a relação entre dados referentes à organização e os indicadores necessários ao seu gerenciamento. Os indicadores mais adequados para a organização são normalmente aqueles que melhor incrementarem o resultado de uma maneira geral. Para tanto, imprescindível também é a análise dos custos envolvidos relacionados aos indicadores determinados, pois os cálculos referentes aos indicadores apresentam precedentes, dentre os quais, muitos inerentes à área de custos. Uma excelente forma de visualizar os indicadores é agrupá-los sob perspectivas ou segmentos. Para tanto, tem-se o Balanced Scorecard, que conforme Campos (1998, p. 59) “permite aos executivos traduzir os objetivos estratégicos de uma empresa em um conjunto coerente de medidores de desempenho inseridos em quatro perspectivas diferentes. Alguns elementos, que podem ser utilizados para incrementar funções relacionadas à implementação dos indicadores, dizem respeito à estimativa de valores. A estatística, uma grande área de estudo relacionada ao tema, tem a possibilidade de predizer valores, inclusive com coeficiente designador da acurácia de tal estimativa. Área relacionada também à aprendizagem dos parâmetros de máxima probabilidade em valores contínuos, assunto este, 13 inerente ao ramo da inteligência artificial e que utiliza de modelo gaussiano linear para descrever o modelo de probabilidade que segundo Russel e Norvig (2004, p. 698) é “minimizado pelo procedimento padrão de regressão linear”, explorado neste trabalho pela utilização do WEKA, uma biblioteca composta por algoritmos de aprendizagem de máquina. Uma forma de conceber tal solução é através da implementação de um framework, o qual, diferentemente de um sistema, tem propósito mais genérico. Esta característica é especialmente válida devido à reutilização das mesmas rotinas para diferentes situações. “Um framework é uma coleção de artefatos de software que é utilizável por várias aplicações diferentes. Esses artefatos são, em geral, classes, juntamente com o software exigido para utilizá-las” (BRAUDE, 2005, p. 567). Em geral, frameworks têm também alta relação com a camada de negócios, camada esta na qual normalmente atuam. O presente trabalho, a partir disso, desenvolveu pacotes de classes e interfaces que constituem um framework responsável pelas operações relacionadas a decisões de nível estratégico empresarial. Para isso, são analisados dados recebidos pelo framework, advindos de um ou mais sistemas. Após análise de tais dados, são retornados pelo framework indicadores que permitam melhor compreender fatores relacionados ao universo desta empresa, desde o momento do seu projeto de criação até sua constituição legal e operação no mercado. 1.1 PROBLEMA Os problemas envolvidos na construção deste trabalho relacionam-se à tomada de decisões executivas em ambientes multicorporativos. Restringe-se a construção do trabalho às decisões que sejam comuns a um universo distinto de empresas. 1.2 JUSTIFICATIVA Dentre as razões que justificam a confecção deste trabalho, estão: a) a falta de informações para tomada de decisão no momento de concepção de empreendimentos; b) a falta de critério decisório para elaboração do planejamento de uma empresa; 14 c) a falta de critério decisório para adaptação do planejamento à realidade vivenciada. 1.3 OBJETIVOS O objetivo geral do trabalho é desenvolver um framework como sistema de apoio ao executivo (SAE) responsável pelas operações relacionadas a decisões de nível estratégico, fornecendo informações referentes a metas, projeções, reajustes e otimizações para empresas de qualquer tipo. Os objetivos específicos do trabalho a partir do desenvolvimento do referido framework, consistem em: a) análise do processo de tomada de decisão em diferentes empresas; b) definição do conjunto de indicadores a ser trabalhado; c) elaboração do modelo de projeções, reajustes e otimizações. 15 2 FUNDAMENTAÇÃO TEÓRICA Este capítulo aborda temas a serem apresentados nas seções a seguir, tais como funções da empresa, gerência de custo, indicadores, estatística, raciocínios e seus tipos, classificação de sistemas, suporte a decisões, frameworks e trabalhos correlatos. 2.1 FUNÇÕES DA EMPRESA O estudo das funções da empresa é uma etapa importante para evidenciar-se sua estrutura e desta forma fazer com que as estimativas e indicadores sejam condizentes com a estrutura definida. “Fayol salienta que toda empresa apresenta seis funções: a saber: (i) funções financeiras; (ii) funções administrativas; (iii) funções comerciais; (iv) funções técnicas; (v) funções contábeis; (vi) funções de segurança” (CHIAVENATO, 2000, p. 83). [...] a visão de Fayol sobre as funções está ultrapassada. Hoje, as funções recebem o nome de áreas da administração: as funções administrativas recebem o nome de área de administração geral; as funções técnicas recebem o nome de área de produção, manufatura ou operações, as funções comerciais, de área de vendas/marketing. As funções de segurança passaram para um nível mais baixo. E, finalmente, surgiu a área de recursos humanos ou gestão de pessoas. (CHIAVENATO, 2000, p. 83). Uma maneira de organizar a divisão funcional é em relação a seus departamentos. A opção mais comum para divisão de departamentos é a departamentalização por funções. Ainda segundo Chiavenato (2000, p. 284), “a divisão do trabalho faz com que a organização se departamentalize de acordo com o critério de semelhança de funções, em atividades agrupadas e identificadas pela mesma classificação funcional, como produção, vendas e finanças”. Para o alcance dos objetivos estabelecidos, optou-se por utilizar a departamentalização por funções, visto ser esta a opção escolhida pela maior parte das empresas, utilizando as funções básicas de Fayol como referência para as funções primárias e incorporando as funções de segurança às funções administrativas. Desta forma, alcançou-se a seguinte proposta de divisão funcional: a) funções financeiras; b) funções administrativas; 16 c) funções comerciais; d) funções técnicas; e) funções contábeis. Cabe aqui aprofundar um pouco cada uma das funções, para vivenciar seus recursos e sua real necessidade a estimativa dos valores e indicadores posteriormente evidenciados. 2.1.1 Funções financeiras As finanças constituem uma importante etapa dentro do planejamento da empresa, visto que uma decisão bem ou mal tomada nesta etapa pode significar o crescimento ou queda da empresa em relação ao seu mercado. Há que se considerar, então, os indicadores para análise de investimentos e, desta forma, decidir a viabilidade financeira do negócio. De acordo com Souza (2003, p. 73), “os critérios de rentabilidade tradicionais são baseados nos fluxos de caixa descontados”. Os indicadores de análise de projetos de investimentos podem ser subdivididos em dois grandes grupos: indicadores associados à rentabilidade (ganho ou criação de riqueza) do projeto e indicadores associados ao risco do projeto. Na primeira categoria estão o Valor Presente Líquido (VPL); o Valor Presente Líquido Anualizado (VPLa); a Taxa Interna de Retorno; o Índice Benefício/Custo (IBC); e o Retorno sobre Investimento Adicionado (ROIA). Na segunda categoria estão a Taxa Interna de Retorno (TIR); o Período de Recuperação do Investimento (PayBack); e o ponto de Fischer. (SOUZA; CLEMENTE, 2004, p. 70). 2.1.2 Funções administrativas Tal como afirma Chiavenato (2000, p. 84), “as funções administrativas envolvem os elementos da administração, isto é, as funções do administrador”, a saber: a) prever: visualizar o futuro e traçar o programa de ação; b) organizar: constituir o duplo organismo material e social da empresa; c) comandar: dirigir e orientar o pessoal; d) coordenar: ligar, unir, harmonizar todos os atos e esforços coletivos; e) controlar: verificar se tudo ocorre de acordo com as regras estabelecidas e as 17 ordens dadas. Assim, para a tomada de decisão nesta etapa, há que se considerar as previsões de maneira a constituir um arranjo de informações que sirva de modelo para as direções a serem tomadas, além da necessidade de controlar os resultados de modo a melhorar cada vez mais o rumo do empreendimento e de comandar e coordenar as tarefas vinculadas aos recursos humanos da empresa. Tarefa, para Chiavenato (2000, p. 60), “é toda atividade executada por uma pessoa no seu trabalho dentro da organização. A tarefa constitui a menor unidade possível dentro da divisão do trabalho em uma organização”. Cargo é o conjunto de tarefas executadas de maneira cíclica ou repetitiva. Desenhar um cargo é especificar seu conteúdo (tarefas), os métodos de executar as tarefas e as relações com os demais cargos existentes. O desenho de cargos é a maneira pela qual um cargo é criado, projetado e combinado com outros cargos para execução das tarefas. (CHIAVENATO, 2000, p. 60). 2.1.3 Funções comerciais A área comercial relaciona-se à compra e venda de mercadorias e, desta maneira, tem forte conexão com a gestão dos estoques da empresa. Cabe ao responsável pela área manter um volume adequado de produtos para ofertar ao mercado, assim como estabelecer quotas de vendas realistas para que o giro dos estoques se mantenha de forma satisfatória. “Uma quota de vendas é uma meta de desempenho atribuída aos vendedores ou à empresa” (SEBRAE, 2007). As quotas auxiliam o responsável pelas vendas no alcance da meta da empresa. Diferentes tipos de quotas são utilizados no dia a dia das empresas. A maior parte, no entanto, utiliza-se da quota baseada no volume de vendas, segundo a qual o vendedor atinge sua cota ou não. Outras, ainda, podem utilizar a quota por lucratividade, na qual produtos de maior lucratividade rendem maior pontuação; quotas por atividades, na qual as atividades que implicam vendas é que somam a pontuação; e quotas mistas com a combinação de mais de uma das estratégias citadas. Além disso, é necessário também estabelecer a estratégia de marketing a ser adotada pela empresa. Kotler (1998, p. 97), define o composto de Marketing como “o conjunto de ferramentas que a empresa usa para atingir seus objetivos de marketing no mercado alvo”. O 18 composto de marketing a que se refere o autor é comumente chamado de 4Ps do marketing, nomenclatura essa utilizada para definir os elementos fundamentais do marketing que são praça, produto, preço e promoção. 2.1.4 Funções técnicas As funções técnicas estão relacionadas, de maneira geral, ao setor de produção da empresa. O setor de produção abrange toda a oferta de serviços necessários, internos ou externos, recursos e mão de obra necessária para executá-lo. O processo de produção pode diferenciar-se muito, a depender da estrutura de cada empresa. Em determinada empresa, o processo de produção pode compreender a confecção de um produto, já em outra, a prestação de serviços. Ainda assim, para ambas as situações, quanto mais a empresa produzir, maior será seu lucro. O estímulo adicional para que os operários ultrapassem o tempo padrão é o prêmio de produção. O tempo padrão – isto é, o tempo necessário para o operário realizar a tarefa racionalizada – constitui o nível de eficiência equivalente a 100%. A produção individual até o nível de 100% de eficiência é remunerada pelo número de peças produzidas. Acima de 100% de eficiência, a remuneração por peça é acrescida de um prêmio de produção ou incentivo salarial adicional que aumenta à medida que se eleva a eficiência do operário. (CHIAVENATO, 2000, p. 61). 2.1.5 Funções contábeis A divisão contábil pode estabelecer os dados numéricos para avaliação do estado atual e previsão futura do empreendimento. “O balanço patrimonial reflete a posição financeira em determinado momento de uma empresa” (MARION; LUDÍCIBUS, 2009, p. 15). De tal modo, representa o balanço patrimonial uma excelente ferramenta de auxilio à tomada de decisão. 19 2.2 GERÊNCIA DE CUSTOS “Podemos definir genericamente custos como sendo a mensuração econômica dos recursos (produtos, serviços e direitos) adquiridos para a obtenção e a venda dos produtos e serviços da empresa.” (PADAVEZE, 2003, p. 4). A esta mensuração atribui-se critérios de classificação do comportamento dos custos envolvidos. As possíveis classificações para os custos estão dispostas em duas vertentes: a) custos diretos e indiretos; b) custos fixos e variáveis. Segundo Padaveze (2003, p. 53) “custos diretos e indiretos podem ser classificados em fixos e variáveis, quando tomamos como referencial o seu comportamento em relação ao volume de produção (ou venda)”. É importante essa classificação para que se possa adicionar aos custos uma variável independente, para estudos prospectivos, ou seja, propósito de previsões, e o processo de tomada de decisão para possíveis novas alternativas de execução. Conforme mencionado por Padaveze (2003), “a abordagem de custos fixos e variáveis tem maior relação com análise preditiva de comportamento relacionado a corporação”. De uma forma geral, custos fixos são aqueles que não se alteram em função do volume produzido, opondo-se aos variáveis que tem exatamente esta função. Portanto, a metodologia de custos fixos e variáveis tem maior relação com a formação do mark-up, utilizado para formação do preço de venda, pois o custeio utilizado pelo mark-up é do tipo por absorção e referenciado por este método de custo. “Calcula-se um mark-up tal que, aplicado sobre o custo unitário obtido sob um método, obtenha-se o preço de venda desejado, que deverá cobrir todos os custos e despesas e oferecer uma margem desejada” (PADAVEZE, 2003, p. 161). De forma sumarizada, pode-se dizer que se obtendo todos os custos e o lucro a ser cobrado, o mark-up será a divisão do percentual restante após subtração das despesas pelo percentual total representante do produto. O percentual restante representa o custo industrial, ou custo da mercadoria para os segmentos de comércio. Ou seja, o custo que a mercadoria representa ante o total do seu preço final. Com similar propósito está a margem de contribuição, a qual representa o lucro variável, sendo o lucro um dos aspectos relacionados ao mark-up. Tem-se então que, em cada unidade vendida, a empresa lucrará determinado valor. Multiplicado pelo total vendido, teremos a margem de contribuição total do produto para a empresa. 20 Diante da margem de contribuição é possível calcular-se o ponto de equilíbrio operacional, ou a quantidade de vendas necessária para obter-se o lucro desejado que pode ser calculado conforme Quadro 1. PE _ quantidade Custos _ fixos _ totais Mar.gem _ contribuiç ão _ unitária Fonte: Padaveze (2003, p. 286). Quadro 1 – Ponto de equilíbrio operacional Assim, obtêm-se a quantidade necessária de produção, ao passo que multiplicando-se os dois valores de forma percentual é possível obter-se o valor necessário de vendas. Além destes, outros custos podem ser controlados, como os gastos gerais, referentes à soma de todos os gastos; os gastos de fabricação, resultado da subtração da mão de obra dos gastos gerais; o faturamento líquido, resultante do faturamento total subtraindo-se os impostos; o lucro líquido operacional, obtido pela subtração dos impostos do lucro bruto, entre outros, conforme melhor visualizado em Sebrae (2004). 2.3 ELEMENTOS PARA TOMADA DE DECISÃO EXECUTIVA – OS INDICADORES “Resumidamente, pode-se afirmar que a gestão empresarial de uma micro e pequena empresa é a soma da atividade “escolha dos indicadores de desempenho” mais a “reunião de análise e melhorias desses indicadores”” (DIAS, 2007, p. 7). E sob essa perspectiva é possível avaliar o desempenho desta empresa no mercado e implementar melhorias caso se façam necessárias. 2.3.1 Indicadores de desempenho “O indicador de desempenho não é como qualquer outro indicador. Ele precisa estar orientado para a saúde operacional da empresa, ou seja, só se pode afirmar que um indicador é de desempenho quando ele melhorar e o resultado operacional da empresa também melhorar” (DIAS, 2007, p. 9). E, desta forma, têm os indicadores relação direta com os resultados, pelo simples fato de advir destes. A escolha dos indicadores é uma etapa importante ao empresário, pois ao escolher poucos indicadores pode haver dificuldades pela falta de informações para decisão ao passo 21 que escolhê-los em demasia pode dificultar sua implementação pela grande quantidade de informações excedentes, que não afetam o resultado e nem melhoram seu comportamento no mercado. Por isso, conforme Dias (2007, 13), “para uma micro ou pequena empresa ter resultado, a escolha de três a cinco indicadores de desempenho a ajudaria a atingir o seu resultado operacional”. Alguns dos principais indicadores de desempenho, relacionados a micro ou pequena empresa (MPE), conforme ilustrado na Figura 1, segundo Dias (2007, 16), são: a) grau de dependência - dividir o total de faturamento com produtos e serviços de um determinado cliente pelo total de faturamento da mpe; b) novos clientes - número de novos clientes que a micro ou pequena empresa conquistou no mês; c) gasto geral de fabricação da mpe - dividir o gasto geral de fabricação pelo faturamento total da mpe; d) aumento do faturamento da mpe - dividir o faturamento geral do mês atual pelo faturamento geral do mês anterior; e) qualidade - dividir o total de produtos ou serviços produzidos com defeitos pelo total de produtos ou serviços produzidos pela micro e pequena empresa; f) lucro líquido operacional da mpe - diminuir o faturamento total líquido pelos gastos gerais da micro e pequena empresa; g) resultado operacional da mpe - dividir o lucro líquido operacional da micro e pequena empresa (faturamento total menos gastos gerais) pelo ativo total da mpe; h) eficiência comercial da mpe - dividir o total de orçamentos aprovados pelos clientes pelo total de orçamentos elaborados e enviados para os clientes da micro e pequena empresa. Fonte: Dias (2007, p. 22). Figura 1 – Indicadores de desempenho 22 Nota-se entre os indicadores citados, que estes normalmente expressam a relação entre dois ou mais totais. De forma distinta estão os indicadores financeiros, os quais são normalmente encontrados por meio de métodos baseados nos fluxos de caixa estimados para os investimentos. 2.3.2 Indicadores financeiros Os indicadores para análise de investimentos classificam-se em indicadores de rentabilidade, em que se destacam o valor presente líquido (VPL), o valor presente líquido anualizado (VPLa), a taxa interna de retorno (TIR), o índice benefício custo (IBC), o retorno sobre investimento adicionado (ROIA) e indicadores associados ao risco, podendo ser citados a taxa interna de retorno (TIR), o período de recuperação do investimento (PB) e o ponto de Fischer (PF). A decisão de se fazer investimentos de capital é parte de um processo que envolve a geração e a avaliação das diversas alternativas que atendam às especificações técnicas dos investimentos. Após relacionadas as alternativas viáveis tecnicamente é que se analisam quais delas são atrativas financeiramente. É nessa última parte que os indicadores gerados auxiliarão o processo decisório. (SOUZA; CLEMENTE, 2004, p. 69). O Quadro 2, fundamentado em conceitos de Souza e Clemente (2004) descreve as formas de cálculo e a análise da atratividade do resultado obtido. Método de cálculo do indicador n VPL t 1 FCt (1 i ) t VPLa VPL * IBC l * (1 i) n (1 i) n 1 Valor _ presente _ fluxo _ beneficios Valor _ presente _ fluxo _ investimentos ROIA 100( n IBC 1) Atratividade do resultado VPL > 0 VPLa > 0 IBC > 1 Ganho além da TMA em relação ao risco 23 n TIR i , quando, VPL j 0 [CFj] Zero (1 i ) j TIR > TMA T PB CFt I 0 PB < vida do investimento t 0 PF TIR , quando VPL ambos _ os _ projetos Comparação das alternativas Onde: i = taxa n = períodos CFj = fluxo de investimentos Demais representações = elementos frequentes como como representação de um somatório e também as resultantes dos demais cálculos referenciados pelo cálculo atual. Fonte: Adaptado de Souza e Clemente (2004). Quadro 2 – Métodos de cálculo e atratividade dos indicadores A composição dos indicadores citados tanto no aspecto geral como financeiro podem servir de parâmetro para guiar o planejamento da empresa e, desta forma, aperfeiçoar o que for passível de melhoria, impedir resultados insatisfatórios antes que aconteçam e repará-los caso acontecerem. 2.3.3 Balanced Scorecard Dentre as metodologias de medição normalmente adotadas, destaca-se o Balanced Scorecard que tem como propósito a medição e controle de vários dos indicadores já mencionados. Esta metodologia efetua a medição e a classifica sob 4 perspectivas que guiam a visão e estratégia do negócio. São elas: a) financeiro; b) clientes; c) processos internos; d) aprendizado e crescimento. 24 O desempenho financeiro, indicador de resultado (lag indicator), é o critério definitivo do sucesso da organização. A estratégia descreve como a organização pretende promover o crescimento de valor sustentável para os acionistas; O sucesso com os clientes-alvo é o principal componente da melhora do desempenho financeiro. Além de medir através de indicadores de resultado como satisfação, retenção e crescimento o sucesso com os clientes, a perspectiva de clientes define a proposta de valor para segmentos de cliente-alvo. A escolha da proposição de valor para os clientes é o elemento central da estratégia; Os processos internos criam e cumprem a proposição para os clientes. O desempenho dos processos internos é um indicador de tendência de melhorias que terão impacto junto aos clientes e nos resultados financeiros; Ativos intangíveis são a fonte definitiva de criação de valor sustentável. Os objetivos de aprendizado e crescimento descrevem como pessoas, tecnologia e clima organizacional se conjugam para sustentar a estratégia. As melhorias nos resultados de aprendizado e crescimento são os indicadores de tendência para os processos internos, clientes e desempenho financeiro. (KAPLAN; NORTON, 2004, p. 7). Estas perspectivas agrupam os indicadores que fundamentarão o último estágio do processo decisório, a tomada de decisão. 2.4 ESTATÍSTICA À TOMADA DE DECISÃO Dentre os aspectos estatísticos que podem ser utilizados para tomada de decisão, encontram-se a regressão linear e a programação linear. 2.4.1 Regressão linear Conforme Azevedo (1997, p. 10) um modelo de regressão linear se caracteriza por apresentar formalmente as duas seguintes propriedades de uma relação estatística: a) da população de onde retiram-se as observações, tem-se uma distribuição de probabilidade de Y, para cada nível de X; b) as médias dessas distribuições de probabilidade variam de alguma forma sistemática com X. Os modelos de regressão linear mais difundidos são a regressão linear simples e regressão linear múltipla. Considerando o aspecto da estimativa com orientação à implementação da rotina, pode-se afirmar de uma forma geral que tanto a regressão simples como as demais produzirão a estimativa apenas para uma das propriedades do conjunto de propriedades do elemento. A diferença está que a regressão linear simples considera apenas 25 uma propriedade para estimar o resultado, normalmente expressa através do par ordenado, período + propriedade1, estimando-se um modelo que representará os próximos valores da propriedade1, ao passo que os demais modelos de regressão consideram um par de elementos, expresso, como, por exemplo, período + propriedade1 + propriedade2 + propriedadeN, estimando-se um modelo que representará os próximos valores apenas da propriedade1. Ou seja, apesar de considerar mais elementos, o resultado será para apenas um valor em ambos os casos, mas a análise levará em consideração também as demais propriedades no caso da regressão linear múltipla. O modelo de regressão linear simples é expresso conforme o Quadro 3. Yi 0 1 X i i Onde: Yi : variável resposta (dependente); X i : uma constante conhecida (não é variável aleatória); 0 _ e _ 1 : são parâmetros; i : é um erro aleatório Fonte: Azevedo (1997, p. 13). Quadro 3 – Modelo de regressão linear simples Um dos métodos mais comuns para otimização de problemas envolvendo regressão linear é o método dos mínimos quadrados, o qual, conforme Azevedo (1997, p. 13) “considera a soma dos quadrados dos desvios de Y com relação ao seu valor esperado”, ou seja, procura minimizar o erro através de sua distribuição pelo conjunto de elementos. Um importante aspecto a se considerar para o modelo é atestar-se a sua acurácia. Uma forma comum de atestar é através do emprego do coeficiente de correlação de Pearson que tem, de uma forma geral, como propriedade mensurar em uma escala de -1 a 1 a relação entres as variáveis do modelo. Caso o coeficiente obtido se enquadre abaixo de 0, diz-se que as variáveis são inversamente proporcionais, caso se enquadre em valores próximos de 0, a relação é fraca, para valores mais próximos de 1, diz-se que ocorre uma relação de moderada a forte. 26 2.4.2 Programação linear “É um problema de otimização que consiste em achar os valores das variáveis x1, x2, ...xn que minimizam (ou maximizam) a função objetivo” (LINS, 2006, p. 8). Os modelos de programação linear têm por objetivo sua maximização, minimização ou a busca das variáveis que atendam a um objetivo específico. Alguns elementos são necessários aos problemas de programação linear (PPL). Variáveis de decisão: são as variáveis consideradas relevantes ao problema, passíveis de quantificação e disponíveis; Função objetivo: é uma função, produto de coeficientes pelas variáveis de decisão, que se deseja otimizar no problema, como a maximização do lucro ou minimização dos custos; Restrições: correspondem aos elementos restritivos que todo problema possui, como limitações de recursos produtivos ou capital para investimento. (LINS, 2006, p. 7). Os elementos citados têm relevância maior na formulação do problema normalmente advindo de alguma situação em particular como, por exemplo, a maximização de lucro de determinado negócio. Um modelo de PPL, pode ser visualizado no Quadro 4. Restrições: a11 x1 ... a1n xn b1 am1 x1 ... amn xn bm Sujeito à: a : x j 0j Função objetivo: Min c1 x1 c 2 x 2 ... c n x n Fonte: Lins (2006, p. 11). Quadro 4 – Modelo para problema de programação linear Primeiro o conjunto de restrições limita o problema ao vetor de restrições apresentado, após, a função objetivo apresenta o modelo de função para minimização da solução. A solução do problema pode ser encontrada pela resolução do tableau simplex. Conforme Lins (2006, p. 91) “o tableau simplex é uma forma de esquematizar os PPL’s. O quadro apresenta os coeficientes das variáveis em colunas e as restrições e função objetivo em linhas”. A solução é encontrada pela iteração do algoritmo simplex sob um poliedro que representa o tableau e que se refina incorporando variáveis de folga ao problema até encontrar-se a solução na qual todos os elementos de Z são maiores que zero e que representa a solução ótima do problema. 27 2.5 RACIOCÍNIOS E SEUS TIPOS – ELEMENTOS CONCEITUAIS À TOMADA DE DECISÃO Conforme Russel e Norvig (2004, p. 567) “o príncipio básico da teoria da decisão é a maximização da utilidade esperada”. Para tanto, há que se considerar os tipos de raciocínio, elementos imprescindíveis a tomada de decisão. Os tipos de inferências mais comuns para os raciocínios são a dedução e a indução. Além desses, tem-se estudado mais recentemente um novo tipo de inferência, descrita como abdução. De forma geral, a dedução concebe suas inferências em uma expressão do tipo, a parte está para o todo, então as propriedades destas partes também. Já na inferência por indução, o todo está para as partes, então as propriedades deste todo também. Esses dois tipos mais comuns de raciocínio procuram suas razões a partir do relacionamento prévio dos elementos evidenciados. Já a abdução, de forma geral, procura a relação dos objetos a partir de suas propriedades. Segundo Heinzle (2011, p. 138) “essa forma de raciocinar é caracterizada por estudar fatos de interesse e então buscar a invenção de uma teoria capaz de explicá-los”. Assim, descrevendo de maneira sucinta, a abdução parece ser a única forma de raciocínio a criar novo conhecimento, pois estuda as relações a partir das propriedades e não as propriedades a partir das relações. Destaca-se, no Quadro 5, um exemplo de Pierce, criador da abdução em sua teoria do raciocínio, a qual demonstra de maneira coerente a diferença entre os tipos de raciocínio citados. Dedução Regra: Todos os feijões deste pacote são brancos Caso: Estes feijões provêm deste pacote Resultado: Estes feijões são brancos Indução Caso: Estes feijões provêm deste pacote Resultado: Estes feijões são brancos Regra: Todos os feijões deste pacote são brancos Abdução Regra: Todos os feijões deste pacote são brancos Resultado: Estes feijões são brancos Caso: Estes feijões provêm deste pacote Fonte: Pierce (1972 apud HEINZLE, 2011, p.140). Quadro 5 – Diferença entre os tipos de raciocínio 28 2.6 CLASSIFICAÇÃO DE SISTEMAS “Os tipos de sistemas de informação mais comuns nas organizações de negócios são aqueles projetados para o comércio eletrônico e móvel, processamento de transações, informações gerenciais e apoio a decisão” (STAIR; REYNOLDS, 2011, p.14). A distribuição da maior parte destes sistemas situa-se em torno da estrutura organizacional e é a maneira como normalmente são classificados também. Assim, de forma geral, temos sistemas de informações relacionados à operação, sistemas para o nível tático - alimentados por dados do nível operacional, e também sistemas para o nível estratégico - alimentados por dados do nível tático, cada nível com uma ou mais classificações de sistemas e cada classificação com uma ou mais nomenclaturas envolvidas. Na Figura 2, pode-se observar algumas classificações de sistemas conforme seu nível. Nível Estratégico Sistemas de apoio ao executivo Nível Tático Sistemas de apoio à decisão Sistemas de informação gerencial Nível Operacional Sistema de processamento de transações Fonte: Adaptado de Stair e Reynolds (2011). Figura 2 – Classificação de sistemas 29 Tal como se observa na Figura 2, no nível operacional, situam-se os sistemas de processamento de transações (SPT), dentre esses, os mais diversos. As atividade de processamento incluem coletar dados, editá-los, corrigi-los, manipulá-los, armazená-los e produzir documentos. O resultado de processar transações de negócio é que os registros da organização são atualizados para refletir o estado da operação na época da última transação processada. (STAIR; REYNOLDS, 2011, p.331). Como exemplo, pode-se mencionar os Enterprise Resource Planning (ERP), os quais incorporam a maior parte dos sistemas elementares deste nível e alimentam os sistemas de nível tático. No nível tático estão os sistemas de informação gerencial (SIG), também conhecidos como Management Information System (MIS), além dos Sistemas de Apoio à Decisão (SAD), também chamados de Decision Support System (DSS). “O propósito principal do MIS é auxiliar uma organização a alcançar seus objetivos, fornecendo aos gerentes uma perspectiva detalhada das operações regulares da organização para que eles possam controlar, organizar e planejar de forma mais eficaz” (STAIR; REYNOLDS, 2011, p.371). Em um DSS conforme Stair e Reynolds (2011, p.388) “o foco é a eficácia da tomada de decisão, quando enfrentado com problemas de negócios não estruturados ou semiestruturados”. A diferença principal entre um SIG e um SAD ou um MIS e um DSS diz respeito a suas formas de interação. Enquanto um SIG fornece as informações baseadas em dados pré-dispostos dos níveis operacionais e pós-processados pelo sistema, um SAD as fornece baseadas em inferências resultantes da aquisição de conhecimento prévio informado pelo usuário, interpretados junto ao nível operacional e igualmente processadas pelo sistema. Já no nível estratégico, situam-se os sistemas de informação executiva (SIE), os quais têm propósito similar aos SIG, representadas por indicadores, mas neste caso relacionadas ao nível estratégico e normalmente alimentadas pelo nível tático. Alguns autores utilizam a nomenclatura sistemas de apoio ao executivo ou executive support system (ESS) para referirse ao mesmo tipo de sistema. O termo parece um pouco equivocado, pois baseando-se também na definição de nível tático, como SIG e SAD, que são sistemas distintos, não devem dizer respeito a mesma classificação e também porque as decisões deste nível normalmente não são baseadas em inferências, as quais seriam o caso de apoio à decisão, pois os dados advindos ou foram processados pelo SIG ou já foram inferidos de um SAD, ambos do nível tático e portanto não havendo razoabilidade em inferir-se uma informação já predisposta. Além disso, um SIG trabalha com atributos contínuos ao passo que um SAD trabalha com 30 atributos discretos. Isto porque conforme Stair e Reynolds (2011, p. 392) “um DSS enfatiza decisões reais e estilos de tomada de decisão”, ao passo que um “MIS geralmente enfatiza somente as informações”. Apesar dos conceitos imprecisos, uma comparação entre sistemas de apoio à decisão, SAD ou DSS, e sistemas de apoio ao executivo, SAE ou ESS, torna a dúvida esclarecida por Stair e Reynolds (2011). Um ESS é um tipo especial de DSS e, como um DSS, é projetado para dar suporte às tomadas de decisões de alto nível na organização. Os dois sistemas são, no entanto, diferentes de forma importante. Os DSS fornecem uma variedade de ferramentas de modelagem e análise para capacitar os usuários a analisar completamente os problemas, isto é, eles permitem aos usuários responder as questões. Os ESS apresentam informações estruturadas sobre aspectos da organização que os executivos consideram importantes. (STAIR; REYNOLDS, 2011, p. 400). O raciocínio é ilustrado pela Figura 3. Fonte: Adaptado de Stair e Reynolds (2011). Figura 3 – Relacionamento dos sistemas pelos níveis A Figura 3 relaciona alguns dos argumentos anteriormente levantados. Como pode ser visto no relacionamento em destaque na figura, apesar de não razoável argumento para sustentar um SAE como SIE, por um SIE normalmente não tratar de inferências, também não 31 é razoável tratá-lo como apoio, pois os únicos caminhos possíveis para premissas seriam advirem do SAD, com decisões já inferidas, e assim gerando incoerente reprocesso, ou da base, gerando contratempos desnecessários ao executivo, por necessidade de indicar as premissas. Assim, os dois termos podem ser usados para designar a mesma classificação, pois, as inferências normalmente adotadas no apoio não se fazem presentes e também não seria sensato à divisão por classificação de sistemas com mesma função, que neste caso relacionado ao apoio executivo. Assim convenciona-se com qualquer uma das duas formas, seja sistema de apoio ao executivo, seja sistema de informações executivas, pois ainda que não relacionadas às inferências, tratam da mesma função. 2.7 SUPORTE A DECISÕES O suporte a decisões estuda maneiras de verificar a viabilidade de determinada escolha dado um contexto previamente estabelecido. Compreender, também, técnicas que permitam mensurar dados de maneira a constituir regras que comportem decidir, entre as escolhas elencadas, qual delas atende de maneira mais satisfatória à proposta instituída. Alguns autores decompõem estas técnicas em paradigmas científicos. “As metodologias voltadas ao apoio à decisão adotam o construtivismo como paradigma científico, ao contrário das metodologias voltadas a tomada de decisão, que seguem o paradigma racionalista” (ENSSLIN; MONTIBELLER NETO; NORONHA, 2001, p. 35). Esses mesmos autores ainda atribuem as metodologias multicritério como implementações do apoio à decisão e pesquisa operacional como implementações à tomada de decisão. É possível afirmar, por fim, que o paradigma racionalista ou metodologias muticritério é de grande validade para a fase de definição de metas, visto seu processamento basear-se essencialmente nos critérios e seus valores. Isto é, não se utiliza de resultados anteriores, indisponíveis nessa fase, já que as metas representam valores a serem alcançados independente de resultados passados, ao passo que o paradigma construtivista ou baseado na pesquisa operacional pode utilizar-se de resultados anteriores, sendo assim recomendável para efetuarem-se projeções de resultados. 32 2.7.1 Paradigma construtivista – Metodologias multicritério Segundo Ensslin, Montibeller Neto e Noronha (2001, p. 35), “o paradigma construtivista é o mais apropriado em fornecer apoio aos processos decisórios que envolvem situações complexas”. Conforme mencionado anteriormente, existe uma diferença entre o processo de apoio à decisão e o processo de tomada de decisão. Os métodos para tomada de decisão multicritério, em geral, fazem uso de um conjunto de soluções possíveis e então são definidos os critérios necessários para obtenção de soluções do problema. Dessa forma, é possível avaliar o grau de satisfação em relação a cada alternativa. A decisão multicritério engloba metodologias que podem ser aplicados à análise de situações complexas. Situações complexas são aquelas que envolvem múltiplos atores, cada um deles com seu sistema de valores, múltiplos objetivos com conflitos de interesses, diferentes níveis de poder entre os atores e necessidade de negociação entre eles, além de uma enorme quantidade de informações qualitativas e quantitativas. (ENSSLIN; MONTIBELLER NETO; NORONHA, 2001, p. 35). Conforme Gomes, Araya e Carignano (2004, p. 5), dentre os métodos mais divulgados para tomada de decisão multicritério em cenários complexos, têm-se: “(i) métodos da escola americana e (ii) métodos da escola francesa ou européia”. Os métodos da escola americana descendem de deu método mais difundido, no qual são baseados os demais, sendo denominado Analytical Hierarchy Process (AHP). Basicamente, o AHP, principal método da escola americana, fundamenta sua decisão atribuindo-se pelo usuário graus de importância para os atributos, além de preferência do valor para a lista de valores de cada atributo. Desta forma, os responsáveis indicam o que é importante e por meio disso o método se refina para atendê-lo ao indicar quais dentre as seleções têm maior aproximação em relação aos aspectos requeridos. Os métodos da escola francesa descendem igualmente do seu método mais difundindo e que leva o nome de Electre - ELimination Et Choix Traduisant la REalité. “Os métodos Electre fazem parte dos denominados Métodos de Superação, pois eles têm, como conceitos teórico central, as relações de superação” (GOMES; ARAYA; CARIGNANO, 2004, p. 97). O funcionamento diferencia-se por não estabelecer fila total de prioridades e sim relações de importância. Assim, é possível indicar que A é prioritário a B, que A é prioritário a C e que C 33 é também prioritário a B. Ou seja, a ordem de importância é constituída de relações independentes, dando maior flexibilidade ao resultado. 2.7.2 Paradigma racionalista – Pesquisa operacional A pesquisa operacional trata de problemas de otimização em geral. Boa parte de suas soluções provém de soluções baseadas no algoritmo simplex, muito utilizado para solucionar problemas de programação linear, como são conhecidos a maior parte dos problemas de pesquisa operacional. Estes problemas relacionados à programação linear tratam de questões em que exista uma função objetivo e restrições a essa função. Assim, o problema pode ser expresso com a variável numérica a ser atingida em função de uma série de recursos e uma série de limitações que impedem ou de alguma maneira restringem determinados recursos conforme visto nas seções anteriores. 2.8 FRAMEWORK “Um framework pode comportar-se como uma aplicação genérica que personalizamos inserindo nossas próprias partes. Os artefatos do framework estão em geral na forma pronta para usar e são códigos nativos” (BRAUDE, 2005, p. 567). Um framework deve ser desenvolvido utilizando-se a arquitetura mais abstrata possível, permitindo, assim, a flexibilidade necessária à estrutura da aplicação. A camada de negócios de um framework de suporte a decisões está vinculada ao controle que será elencado. Segundo Braude (2005, p. 569), uma “possível utilização de um framework se dá por ele conter o controle”. Controle este relativo às regras de negócio mencionadas. “Ao construir frameworks, buscamos generalizações (abstrações) das classes que selecionamos até o momento” (BRAUDE, 2005, p. 570). Normalmente um framework é concebido partindo-se de uma lista de softwares previamente construídos. Assim, generalizando-se algumas de suas partes, é possível chegar a um framework que provenha funcionalidades para uma diversidade de aplicações. 34 Muitas são as definições sobre as características necessárias a concepção de um framework. Algumas delas dizem respeito a sua forma de composição ser constituída de Frozen Spots e Hot Spots que seriam respectivamente partes fixas e partes flexíveis. Outras dizem respeito à presença da inversão de controle (IoC), característica esta bastante comum em frameworks, dentre estes destacam-se os containers leves, bastante difundidos e aceitos. Segundo Fowler (2004) “dizer que containers leves são especiais porque usam inversão de controle é como dizer que meu carro é especial porque tem rodas.” O framework inverte o controle de algum aspecto sob guarda de aquisição de informação pela aplicação. Ou seja, dependência de injeção dos dados relativos ao controle. Assim, outra característica presente em frameworks diz respeito à injeção de dependência ou dependency injection (DI). “Ao aplicarmos IoC, objetos são dados as suas dependências em tempo de criação por alguma entidade externa que coordena cada objeto do sistema. Quer dizer dependências são injetadas nos objetos” (WALLS; BREIDENBACH, 2006, p.16). Portanto, resumidamente, um framework deve trabalhar com abstrações das partes fixas e normalmente prover interfaces para implementação pela aplicação das características relativas à injeção das dependências necessárias a inversão de controle do framework e concebidas pela aplicação por meio de herança das características do framework. A Figura 4 ilustra uma arquitetura genérica com características de um framework. Fonte: Adaptado de Walls e Breidenbach (2006). Figura 4 – Arquitetura comum à concepção de um framework 35 A aplicação implementa a interface do framework em questão em uma classe de objeto, o qual foi criado pela aplicação e injetado no núcleo do framework. Este núcleo é representado por uma classe abstrata da qual a aplicação realiza herança das características e recebe resultados dos processamentos advindos por referência dos objetos injetados. 2.9 TRABALHOS CORRELATOS Dentre os trabalhos correlatos encontrados, pode-se listar Heckler (2009), com sua ferramenta de apoio a gerência de configuração, Silva (2010), com seu arcabouço para tomada de decisão colaborativa, e Casotti (1993), descrevendo aspectos relativos à programação multiobjetivo. Heckler (2009) procura implementar em seu trabalho de graduação um software para gerência baseado em qualidade seguindo características relativas aos padrões de qualidade para desenvolvimento de software mencionados em modelos como CMMI e MPS.BR. Heckler (2009) o nomeia como Redmine GCO, uma ferramenta de apoio para a Gerência de Configuração. Como resultados, Heckler (2009) cita um ganho de qualidade vinculado à otimização dos processos de desenvolvimento resultante do software implementado. Silva (2010), por sua vez, desenvolveu um arcabouço de tomada de decisão colaborativa para o gerenciamento da evolução de empresas virtuais. Em seu arcabouço, Silva (2010) descreve a criação de um protocolo de tomada de decisão. Segundo Silva (2010), é este o responsável pelo processamento relativo às decisões e é baseado em um modelo adaptado a sua implementação que é nomeado como Engineering Change Management (ECM). Seu arcabouço ainda avalia o grau de confiança entre os parceiros, justamente por se tratar de um software colaborativo. Como resultados, Silva (2010) constata que a utilização de ferramentas de apoio colaborativo como a sua são capazes de melhorar a qualidade de decisões tomadas por coordenar melhor o processo e permitir um melhor embasamento para a tomada de decisão. Casotti (1993) apresenta modelagem de problemas da vida real resolvidos por meio de técnicas as mais variadas combinadas em um software de apoio a decisão. Uma abordagem utilizada por Casotti (1993) é a metodologia multicritério por meio de modelagem matemática. 36 Nos trabalhos pesquisados, foram encontradas informações relevantes tanto a respeito da construção de sistema de suporte à decisão como em Heckler (2009) e Silva (2010), quanto informações a respeito das técnicas relacionadas ao apoio à decisão, como em Casotti (1993), que servirão também de embasamento para construção da ferramenta a que se propõe esse trabalho. 37 3 DESENVOLVIMENTO Neste capítulo, serão abordados temas relativos ao desenvolvimento do framework. Na seção 3.1, será apresentado o sistema que fará uso do framework; na seção 3.2, podem ser visualizados os requisitos do framework; posteriormente, na seção 3.3, será apresentado o modelo de arquitetura do framework; na seção 3.4, pode ser visto o modelo de negócios utilizado pela ferramenta; na seção 3.5, a utilização dos raciocínios à concepção do framework, na seção 3.6, tem-se a produção do modelo para o balanced scorecard (BSC) e na seção seguinte, 3.7, será demonstrada a implementação do framework através da sua constituição por fases. Por fim, na seção 3.8, serão mencionados os resultados da ferramenta produzida. 3.1 SISTEMA ATUAL O framework deve ser multicorporativo e, desta forma, necessita ser construído de forma a suportar diferentes aplicações. Por essa razão, qualquer sistema pode fazer uso do framework desde que implementadas suas interfaces de referência. Os estudos de caso são procedidos junto à implementação. 3.2 ESPECIFICAÇÃO DOS REQUISITOS O Quadro 6 lista os requisitos funcionais (RF) previstos para o framework e sua rastreabilidade, ou seja, vinculação com o(s) caso(s) de uso associado(s). Requisitos Funcionais RF01: O framework deverá fornecer interfaces com implementações de referência para entrada de dados RF02: O framework deverá retornar ao sistema lista de metas baseadas nas margens RF03: O framework deverá retornar ao sistema lista de projeções baseadas nos totalizadores informados; Caso de Uso UC01 UC02 UC03 38 RF04: O framework deverá retornar ao sistema reajustes baseados nos totais apresentados RF05: O framework deverá retornar ao sistema otimizações baseadas nas informações do processo de aquisição/produção UC04 UC05 Quadro 6 - Requisitos funcionais O Quadro 7 lista os requisitos não funcionais (RNF) previstos para o sistema. Requisitos Não Funcionais RNF01: O framework deverá utilizar UML como linguagem de modelagem RNF02: O framework deverá utilizar Java como linguagem de programação RNF03: O framework deverá utilizar Eclipse como IDE para desenvolvimento em Java RNF04: O framework deverá utilizar bibliotecas como Weka, Apache POI e Apache Commons Math para implementação das rotinas relacionadas às projeções, cálculos financeiros e otimizações. Quadro 7 - Requisitos não funcionais 3.3 ARQUITETURA DO FRAMEWORK Na Figura 5, pode ser visualizado o modelo de arquitetura. Nele, pode-se observar como será procedido o fluxo de informações relativo ao funcionamento do framework. 39 Figura 5 – Arquitetura do framework 40 Como se pode constatar na Figura 5, os artefatos abstratos referentes à implementação do framework são destacadas pela boundary box frozen spots, ao passo que a implementação destes arfetatos, suas dependências e heranças são procedidas pela aplicação na boundary box hot spots. A injeção das dependências é demonstrada pela utilização de um único injetor, apenas para visualização, mas na implementação encontra-se um injetor para cada dependência. O mesmo ocorre com as instâncias pelo framework de objetos da aplicação, em que existe um construtor de objetos filho para cada pai injetado pela aplicação. O framework não tem capacidade para criar um objeto, pois desconhece a característica do objeto injetado, mas conhece sua interface, por isso, pode solicitar a aplicação por um método de interface a criação de um novo objeto filho, a partir da referência do objeto pai já injetado. É assim que o framework constrói novos objetos mesmo desconhecendo suas características. 3.4 MODELO DE NEGÓCIOS Esta seção apresenta o diagrama de casos de uso como auxílio ao processo inicial de modelagem do framework. 3.4.1 Diagrama de casos de uso Nesta subseção, apresenta-se a modelagem do diagrama de casos de uso, o qual cria a perspectiva inicial ao desenvolvimento do framework. O detalhamento dos casos de uso, bem como a descrição de seus cenários, são apresentados a partir do Apêndice A. A Figura 6 apresenta o diagrama de casos de uso para o framework. 41 Figura 6 – Diagrama de casos de uso para o framework 3.4.2 Fases do framework – Diagrama de sequência Convencionou-se utilizar para a implementação do framework um modelo de fases onde cada uma das fases descrevesse o processamento de rotinas necessárias à conclusão dos casos de uso anteriormente relacionados. Para modelagem inicial, um simples descritivo das fases foi concebido como demonstrado na Figura 7. 42 Figura 7 – Descritivo das fases A Figura 7 descreve as entradas e saídas referentes a cada uma das fases. Após visualização da descrição dos dados, foi possível a concepção do diagrama de sequência do framework, como apresentado na Figura 8. 43 Figura 8 – Diagrama de sequência do framework No diagrama de sequências apresentado na Figura 8, o fluxo de execução consiste de injeção das dependências, destacado em azul, chamadas aos métodos relativos às estimativas e solução de cada retorno por meio de objetos filhos a partir da referência do objeto pai injetado. 3.5 UTILIZAÇÃO DOS RACIOCÍNIOS À TOMADA DE DECISÃO Dos raciocínios estudados à tomada de decisão, destaca-se para a implementação dos conceitos neste framework a dedução e a indução, as quais tiveram seus conceitos utilizados pelo grafo de precedência de cálculos. Isto porque, como os elementos finais caracterizam suas heranças em relação à raiz, deduz-se que as mudanças na raiz serão em igual proporção nestes elementos, caso das metas. E no processo inverso, caso dos reajustes, tem-se elementos 44 finais já especializados caracterizando a generalização na raiz, ou seja, se os elementos finais, neste caso, os totais, apresentam tais valores, induz-se que as margens devem ser corrigidas na mesma proporção. 3.6 PRODUÇÃO DO BSC A produção de um balanced scorecard está relacionada à concepção dos valores a cada uma das perspectivas evidenciadas pela metodologia dentre os quais estão, como já citados na fundamentação, a perspectiva financeira, de clientes, processos internos, aprendizado e crescimento. O framework implementa a produção dos indicadores, deixando para aplicação a opção por exibi-los da maneira que melhor lhe convier. 3.7 IMPLEMENTAÇÃO Com os conceitos estudados, técnicas levantadas e modelagens procedidas, dá-se a construção do framework que forneça as listas mencionadas conforme requisições do sistema. 3.7.1 Técnicas e ferramentas utilizadas As seguintes tecnologias foram utilizadas para a construção do framework: a) linguagem Java: linguagem de alto nível, alta portabilidade e que permite integração com weka, apache commons math e apache POI, ambas de extrema importância para construção do trabalho; b) reflection: capacidade inerente à linguagem de instrospeccionar os seus elementos, no caso, as classes de objeto; c) dependency injection: construção da injeção de dependência pela própria estrutura do framework d) IDE eclipse: IDE bastante utilizada e com vários recursos além de uma gama de linguagens suportadas; 45 e) biblioteca WEKA: biblioteca com vários recursos para área de inteligência artificial; f) biblioteca apache commons math: biblioteca com vários recursos para área estatística, otimização, álgebra linear, números complexos, algoritmos de inteligência artificial, dentre outros; g) biblioteca apache POI: biblioteca para manipulação de formatos com funções adicionais aos cálculos financeiros; h) estilo arquitetural em camadas: estilo bastante conhecido e difundido devido à flexibilidade na construção e baixo acoplamento fornecido. As seções seguintes detalham algumas das tecnologias indispensáveis à constituição do framework. 3.7.1.1 Apache POI A apache POI é uma biblioteca para manipulação de formatos de documentos o qual inclui também rotinas para cálculos financeiros. A maior parte das rotinas relacionadas a finanças encontra-se nos pacotes, org.apache.poi.ss.formula.functions.FinanceLib e org.apache.poi.ss.formula.functions.Irr. Nos pacotes citados, podem ser encontradas a maior parte das rotinas comuns em cálculos financeiros, especialmente no que tange às rotinas também encontradas em calculadoras financeiras. Dentre os métodos mais comuns encontrados nos pacotes FinanceLib e Irr, vale destacar: a) npv(double r, double[] cfs) – para calcular o valor presente; b) pmt(double r, double n, double p, pagamento periódicos; c) irr(double[] income) – para taxa interna. double f, boolean t) – para 46 3.7.1.2 Waikato Environment for Knowledge Analysis - WEKA Weka é uma biblioteca de uso para utilização de implementações relacionadas a rotinas de inteligência artificial, e mais especificamente na área de Data Mining (DM), é distribuída sob licença pública e tem seus fontes abertos para colaborações. Esta biblioteca tem, entre suas rotinas, implementações para classificação de dados, clusterização e regras de associação. Entre estes grupos está a regressão linear classificada no pacote weka.classifiers.functions.LinearRegression do Weka. Para uso da implementação da LinearRegression, faz-se necessário uso do arquivo ARFF do Weka. O arquivo ARFF é um simples arquivo que descreve uma relação, seus atributos e valores separados por vírgula. Os elementos necessários ao arquivo ARFF são os seguintes, sucedidos pelos seus dados: a) @RELATION – descreve a relação, como uma tabela em BD uma relação fornece uma descrição para a estrutura; b) @ATTRIBUTE – descreve os atributos sucedidos por seu tipo, no caso da regressão linear sempre do tipo REAL, pois a regressão linear não comporta atributos discretos; c) @DATA – descreve os dados sucedidos pelos seus valores separados por vírgula, uma linha representa de forma geral uma tupla, para fator comparação. Pode-se mencionar o principal método para regressão linear no Weka como sendo buildClassifier(instances) LinearRegression. chamado pela instanciação de um objeto do tipo O uso do buildClassifier consiste em receber o conjunto de dados através do arquivo carregado no Loader do weka. Instances instances = arffLoader.getDataSet(); LinearRegression linearRegression = new LinearRegression(); linearRegression.buildClassifier(instances); Quadro 8 - Trecho de código para regressão linear Com relação ao coeficiente de Pearson, o valor da correlação pode ser obtido através do método evaluation.correlationCoefficient(), o qual é advindo de um objeto de classe Evaluation, como demonstrado no Quadro 9. 47 Evaluation evaluation = new Evaluation(instances); evaluation.evaluateModel(linearRegression, instances); Double coeficienteCorrelacao = evaluation.correlationCoefficient(); Quadro 9 - Trecho de código para obtenção do coeficiente de correlação 3.7.1.3 Apache Commons Math Apache commons math é uma biblioteca para utilização de rotinas relacionadas à matemática e inteligência artificial. Apresenta rotinas vinculadas à análise numérica, números complexos, algoritmos genéticos, otimização, caso em particular do simplex, entre outros. A utilização da biblioteca dá-se de maneira similar à modelagem do problema PL, pois a biblioteca utiliza os mesmos termos e elementos para definição do problema. As rotinas da classe de org.apache.commons.math3.optimization objetos simplex ficam no pacote distribuídas em outros sub-pacotes conforme a função requerida. Algumas rotinas comuns ao uso da biblioteca são: a) LinearConstraint(coefficients, relationship, value) – são as restrições, as quais tem em sua instanciação a composição de uma lista de coeficientes; valores para a restrição, um atributo operador relacional e um valor limitante para a restrição; b) LinearObjectiveFunction(coefficients, constantTerm) – representa a função objetivo expressa também com uma lista de coeficientes e uma constante; c) PointValuePair pointValuePair = simplexSolver.optimize(linearObjectiveFunction, constraints, goalType, restrictToNonNegative) – através do PointValuePair a solução é obtida passando como parâmetros para o objeto da classe SimplexSolver os elementos necessários ao cálculo, como a função objetivo, a lista de restrições, o tipo do objetivo (maximizar ou minimizar) e a restrição de não negatividade. 48 3.7.2 Estrutura de funcionamento das fases Foi adotada para implementação do framework uma estrutura de funcionamento própria para cada uma das fases, visto terem elas objetivos diferentes entre si, utilizando-se, portanto, tecnologias e rotinas distintas. 3.7.2.1 Fase Metas Para construção da fase metas, tomou-se como entrada as margens fornecidas pela aplicação e, como objetivos, fornecer o maior número de atributos contínuos que apoiem as rotinas do executivo, sejam estas indicadores ou mesmo valores relacionados ao negócio. Assim, na busca por indicadores em função das margens e tomando como referência os estudos junto à fundamentação teórica, procedeu-se a um grafo para descrever quais cálculos seriam necessários para atingir-se o indicador mencionado e então, quais cálculos seriam necessários para atingir-se o cálculo anterior, e assim sucessivamente, até atingir-se o nó raiz, que seria representado pelas margens fornecidas. O grafo construído com base na composição dos cálculos fornecidos junto à fundamentação teórica pode ser visualizado na Figura 9. Figura 9 – Grafo de precedência de cálculos Indicadores Totalizadores Controles 49 50 Ao vislumbrar o grafo, nota-se a entrada representada pelas margens e a partir daí a decomposição de cálculos necessários para atingir os indicadores sempre referenciados pelo seu precedente obrigatório. Por essa mesma razão, é possível concluir a impossibilidade de cálculos referentes às metas para alguns dos indicadores levantados na fundamentação pela simples razão de não apresentarem alguns dos precedentes obrigatórios ao seu cálculo. 3.7.2.2 Fase Projeções As rotinas necessárias à projeção incluem a regressão linear procedida junto à aplicação da biblioteca de uso WEKA. Apesar de já serem conhecidos os dados a serem estimados pelo modelo de regressão, construiu-se as rotinas de forma a comportar qualquer circunstância em que se desejar trabalhar com estimativas. Dessa forma, diminui-se o acoplamento do código e facilita possível reutilização das estimativas para outras ocasiões. O local onde a estimativa é acoplada ao problema em questão, no caso estimativas de negócios, é na camada de controle. Abstraindo-se então a camada de controle, com funcionamento já descrito no diagrama de sequência, a implementação da regressão é dada por meio do uso de reflexão com regressão linear simples. O método público setLinearRegression(List<T> ts) recebe uma lista genérica de elementos. Com esta lista, então, o método setLinearRegression povoa um arquivo ARFF com uma relação padrão através da iteração das fields, onde por meio do name da field os atributos referentes ao WEKA são inseridos e, por meio de seus valores no índice da field lida pelo índice do Array de elementos genéricos, recebe seu valor. Assim, o ARFF é povoado. Então a camada de controle estimarRegressaoLinear(List<T> ts) invoca o método público List<T> onde agora a lista é reconstruída por reflexão de forma idêntica à lista recebida e seus valores são resultado da aplicação do modelo de regressão retornado pelo WEKA após invocar o método buildClassifier(instances) do WEKA, como já demonstrado na fundamentação. Além disso, ocorre também o povoamento do coeficiente de correlação de Pearson relativo a cada um dos fields, por aplicação do modelo de regressão sucessivamente a cada um dos pares de elementos compostos por período e field estimado. Foi convencionado que a lista retornada deve ter tamanho idêntico à 51 lista fornecida para estimativa, ou seja, o número de estimativas retornadas é igual ao número de elementos fornecidos. Após a estimativa referente aos totalizadores invocada pela camada de controle, os indicadores são também estimados a partir do simples cálculo em função do resultado da estimativa dos totalizadores. Além dos indicadores, são também estimados um caso especial de indicador, os indicadores financeiros. Os indicadores financeiros são estimados pela aplicação da classe FinancaPOI, a qual implementa os cálculos relativos às finanças com auxílio da biblioteca ApachePOI. Para isso, utiliza-se o resultado da estimativa dos totalizadores. Os cálculos financeiros normalmente compõe-se de valores que possivelmente serão realizados e tem como serventia verificar a viabilidade ou não em se proceder a estas realizações. De igual forma, apresenta-se o cálculo no framework; os valores são primeiro estimados e então, baseado nestes valores, efetuam-se os cálculos necessários e verifica-se a viabilidade ou não das estimativas. Para isto, a classe FinancaPOI foi concebida de forma a comportar um método para cada indicador financeiro. Esta mesma classe apresenta também os métodos booleanos referentes a cada indicador, os quais verificam a viabilidade para cada um deles. O diagrama de atividades da Figura 10 ilustra o fluxo de execução desta fase. 52 Figura 10 – Diagrama de atividades para fase projeções 53 3.7.2.3 Fase Reajustes Em um primeiro momento, optou-se por utilizar a programação linear como forma de mensurar as estimativas relativas a esta fase, onde a modelagem do Problema de Programação Linear (PPL) seria composta de tal forma a ter como objetivo as margens e como restrições a estrutura de controles ou totalizadores, o que mostra-se mais adequado. Sucedeu-se então a busca por orientação relacionada à estatística por tratar-se de área distinta ao segmento da computação e apresentar-se como um problema sem semelhança, no tange a pesquisa operacional, aos demais já observados pelo autor. Assim, esta situação foi conduzida a MS. Janaina Poffo Possamai que após reflexão sobre o tema e confirmação na figura de seu orientador do doutorado em decurso, concluíram em conjunto a seguinte avaliação, conforme Possamai (2012). Conversamos sobre o assunto e o seu caso é bem complexo, pois teríamos restrições sem coeficientes constantes (números), mas sim variáveis. Assim não é um problema de programação linear, o que torna sua modelagem bastante complexa e sua resolução ainda mais. Assim, a programação linear foi concebida na fase otimizações e para esta fase reajustes utilizou-se raciocínio semelhante à fase metas, só que de maneira oposta e desta forma percorre-se o grafo de precedência de cálculos pelo caminhamento nó final, que neste caso são os totalizadores, para raiz e não raiz para o nó final, como no caso da fase metas. No entanto, são necessários antes os valores evindenciados para o reajuste, então como os reajustes serão relativos ao próximo período optou-se então por primeiro estimar os totalizadores do próximo período e então a partir destas estimativas, estimar os reajustes necessários. Para a estimativa das próximas totalizações, realiza-se uma rotina idêntica à fase projeções. Assim, após a estimativa e o caminhamento contrário do grafo, calcula-se os custos fixos totais, os custos variáveis totais e o lucro total. Assim, pela descoberta destes valores em relação ao faturamento é possível encontrar o percentual adequado para cada uma destas margens e assim tornar o valor cobrado adequado ao mercado vivenciado. O diagrama de atividades da Figura 11 ilustra o procedimento de cálculo do reajuste. 54 Figura 11 – Diagrama de atividades para fase reajustes 3.7.2.4 Fase Otimizações Para a fase otimização é invocado o método otimizarObjetivo(List<Restricao> restricoes, List<Objetivo> funcaoObjetivo) da classe SimplexSolverCM. Esta é a classe responsável por tratar as rotinas relativas ao solver com apoio da biblioteca CommonsMath. Como já demonstrado na fundamentação o uso do solver consiste em invocar o método simplexSolver.optimize(linearObjectiveFunction,constraints,goalType,restric tToNonNegative,) o qual tem como parâmetros a função objetivo, as restrições, o objetivo da função(maximizar ou minimizar) e a restrição de não negatividade. 55 Como resultados o solver retorna as variáveis de decisão e a solução obtida. O framework retorna esses valores para aplicação na própria lista de elementos recebida. Ou seja, a lista recebida que tinha todos os valores, menos os valores de X, será retornada com todos os valores, inclusive os de X. O diagrama de atividades da Figura 12 ilustra o processamento das rotinas de otimização. Figura 12 – Diagrama de atividades para fase otimizações 56 3.7.3 Operacionalidade da implementação A operacionalidade do framework se dá por herança de suas características; implementação das interfaces disponibilizadas, injeção das dependências relacionadas a estas interfaces e então invocar-se o método desejado para cálculo necessário relacionado a qualquer uma das fases. Mais especificamente, herda-se a classe abstrata Core do framework; implementam-se as interfaces InterfaceMargens, InterfaceIndicadores, IntenfaceControles, InterfaceTotalizadores, InterfaceIndicadoresFinanceiros, InterfaceProdutoCaracteristica; InterfaceProduto e injetam-se os valores pelos seus respectivos métodos assessores e invoca-se um dos métodos disponíveis para a estimativa desejada. A implementação das interfaces está relacionada a suas fases. Serão todas implementadas pela aplicação somente para o caso de desejar-se utilizar todas as fases. Um exemplo de operacionalidade do framework é demonstrado no Quadro 10, sendo este referente ao estudo de caso aplicado com dados demonstrados por meio do Apêndice B. Vale ressaltar que estes dados foram injetados manualmente através de uma classe, a qual representa uma aplicação implementando o framework. As rotinas descritas nesta classe seriam as mesmas utilizadas por uma aplicação real que viesse a fazer uso das funcionalidades do framework. 1 public class Principal extends Core { public static void main(String[] args) throws Exception { 2 // Heranca das caracteristicas do framework 3 Core core = new Principal(); 4 5 // Injeção de depêndencia das entradas 6 7 // Cria uma nova instancia das margens pela referencia da 8 interface 9 10 11 12 13 14 15 16 17 18 19 InterfaceMargens interfaceMargens = new Margens(); interfaceMargens.setCustosFixos(54000.0); interfaceMargens.setCustosFixosPercentual(64); interfaceMargens.setCustosVariaveisPercentual(32); interfaceMargens.setLucroPercentual(4); // Injeta as margens pela interface core.setInterfaceMargens(interfaceMargens); // Injeta referência de novos controles para saída de dados InterfaceControles interfaceControles = new Controles(); 57 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 int numeroMesesPagamento = 12; interfaceControles.setNumeroMesesPagamento(numeroMesesPagamento) ; int taxaDesconto = 5; interfaceControles.setTaxaDesconto(taxaDesconto); core.setInterfaceControles(interfaceControles); // Cria um arraylist pela referencia da interface ArrayList<InterfaceTotalizadores> interfaceTotalizadoresPeriodos = new ArrayList<>(); InterfaceTotalizadores interfaceTotalizadores = null; // Cria uma nova instancia dos indicadores pela referencia da interface interfaceTotalizadores = new Totalizadores(); interfaceTotalizadores.setPeriodo(3.0); Double ativoTotal3 = 0.0; interfaceTotalizadores.setAtivoTotal(ativoTotal3); Double custosFixos3 = 54000.0; interfaceTotalizadores.setCustosFixos(custosFixos3); Double faturamentoCliente3 = 110.0; interfaceTotalizadores.setFaturamentoCliente(faturamentoCliente3 ); Double faturamentoTotal3 = 98000.0; interfaceTotalizadores.setFaturamentoTotal(faturamentoTotal3); Double saldoFluxoCaixa3 = 7000.0; interfaceTotalizadores.setSaldoFluxoCaixa(saldoFluxoCaixa3); Double faturamentoTotalAnterior3 = 82000.0; interfaceTotalizadores.setFaturamentoTotalAnterior(faturamentoTo talAnterior3); Double faturamentoTotalLiquido3 = 93000.0; interfaceTotalizadores.setFaturamentoTotalLiquido(faturamentoTot alLiquido3); Double gastosFabricacao3 = 0.0; interfaceTotalizadores.setGastosFabricacao(gastosFabricacao3); Double gastosGerais3 = 0.0; interfaceTotalizadores.setGastosGerais(gastosGerais3); Double lucroLiquidoOperacionalTotal3 = 7840.0; interfaceTotalizadores.setLucroLiquidoOperacionalTotal(lucroLiqu idoOperacionalTotal3); Double orcamentosAprovados3 = 700.0; interfaceTotalizadores.setOrcamentosAprovados(orcamentosAprovado s3); Double orcamentosElaborados3 = 115.0; interfaceTotalizadores.setOrcamentosElaborados(orcamentosElabora dos3); // Adiciona os indicadores a lista de periodos pela referencia da interface interfaceTotalizadoresPeriodos.add(interfaceTotalizadores); // Cria uma nova instancia dos indicadores pela referencia da interface interfaceTotalizadores = new Totalizadores(); interfaceTotalizadores.setPeriodo(4.0); Double ativoTotal4 = 0.0; 58 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 interfaceTotalizadores.setAtivoTotal(ativoTotal4); Double custosFixos4 = 54000.0; interfaceTotalizadores.setCustosFixos(custosFixos4); // Continua populando métodos assessores dos arrays relativos a cada período mensal // Injeta as lista de indicadores pela interface core.setInterfaceTotalizadoresPeriodos(interfaceTotalizadoresPer iodos); // Injeta referência de novos indicadores para saída de dados InterfaceIndicadores interfaceIndicadores = new Indicadores(); core.setInterfaceIndicadores(interfaceIndicadores); // Injeta referência de novos indicadores para saída de dados InterfaceIndicadoresFinanceiros interfaceIndicadoresFinanceiros = new IndicadoresFinanceiros(); core.setInterfaceIndicadoresFinanceiros(interfaceIndicadoresFina nceiros); // Injeta a lista de produtos e suas caracteristicas ArrayList<InterfaceProduto> interfaceProdutos = new ArrayList<>(); for (int j = 0; j < 1; j++) { InterfaceProduto interfaceProduto = new Produto(); List<InterfaceProdutoCaracteristica> interfaceProdutoCaracteristicas = new ArrayList<>(); for (int k = 0; k < 0; k++) { InterfaceProdutoCaracteristica interfaceProdutoCaracteristica = new ProdutoCaracteristica(); String nome = "nome" + k; interfaceProdutoCaracteristica.setNome(nome); Double valor = (double) k; interfaceProdutoCaracteristica.setValor(valor); interfaceProdutoCaracteristicas.add(interfaceProdutoCaracteristi ca); } interfaceProduto.setInterfaceProdutoCaracteristicas(interfacePro dutoCaracteristicas); Double lucro = 100.00 * j; interfaceProduto.setLucro(lucro); interfaceProdutos.add(interfaceProduto); } // Construir estimativas // Metas Controles metasControles = (Controles) core.estimarMetasControles(); 59 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 System.out.println("Metas controles"); System.out.println(metasControles.getCustoPercentualMercadoriaVe ndida()); System.out.println(metasControles.getMargemPercentualContribuica o()); System.out.println(metasControles.getMargensPercentualTotal()); System.out.println(metasControles.getMarkupPercentual()); Totalizadores metasTotalizadores = (Totalizadores) core.estimarMetasTotalizadores(); System.out.println("Metas totalizadores"); System.out.println(metasTotalizadores.getFaturamentoTotal()); System.out.println(metasTotalizadores.getGastosGerais()); System.out.println(metasTotalizadores.getGastosFabricacao()); System.out.println(metasTotalizadores.getFaturamentoTotalLiquido ()); System.out.println(metasTotalizadores.getLucroLiquidoOperacional Total()); Indicadores metasIndicadores = (Indicadores) core.estimarMetasIndicadores(); System.out.println("Metas indicadores"); System.out.println(metasIndicadores.getGastoUnitarioFabricacao() ); System.out.println(metasIndicadores.getLucroLiquidoOperacional() ); // Projeções ArrayList<Totalizadores> projecoesTotalizadores = (ArrayList) core.estimarProjecoesTotalizadores(); System.out.println("Projecoes totalizadores"); for (Totalizadores totalizadores : projecoesTotalizadores) { System.out.println("Projecao"); System.out.println(totalizadores.getPeriodo()); System.out.println(totalizadores.getAtivoTotal()); System.out.println(totalizadores.getCustosFixos()); System.out.println(totalizadores.getFaturamentoCliente()); System.out.println(totalizadores.getFaturamentoTotal()); System.out.println(totalizadores.getFaturamentoTotalAnterior()); System.out.println(totalizadores.getFaturamentoTotalLiquido()); System.out.println(totalizadores.getGastosFabricacao()); System.out.println(totalizadores.getGastosGerais()); System.out.println(totalizadores.getLucroLiquidoOperacionalTotal ()); System.out.println(totalizadores.getOrcamentosAprovados()); System.out.println(totalizadores.getOrcamentosElaborados()); System.out.println(totalizadores.getProdutosDefeito()); System.out.println(totalizadores.getProdutosTotal()); System.out.println(totalizadores.getSaldoFluxoCaixa()); } System.out.println("Projecoes indicadores"); ArrayList<Indicadores> projecoesIndicadores = (ArrayList) core.estimarProjecoesIndicadores(); 60 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 for (Indicadores indicadores : projecoesIndicadores) { System.out.println("Indicadores"); System.out.println(indicadores.getAumentoFaturamento()); System.out.println(indicadores.getEficienciaComercial()); System.out.println(indicadores.getGastoUnitarioFabricacao()); System.out.println(indicadores.getGrauDependencia()); System.out.println(indicadores.getLucroLiquidoOperacional()); System.out.println(indicadores.getQualidade()); System.out.println(indicadores.getResultadoOperacional()); } IndicadoresFinanceiros projecoesIndicadoresFinanceiros = (IndicadoresFinanceiros) core.estimarProjecoesIndicadoresFinanceiros(); System.out.println("Projecoes indicadores financeiros"); System.out.println(projecoesIndicadoresFinanceiros.getPontoFisch er()); System.out.println(projecoesIndicadoresFinanceiros.getRetornoInv estimentoAdicionado()); System.out.println(projecoesIndicadoresFinanceiros.isRetornoInve stimentoAdicionadoViavel()); System.out.println(projecoesIndicadoresFinanceiros.getTaxaIntern aRetorno()); System.out.println(projecoesIndicadoresFinanceiros.isTaxaInterna RetornoViavel()); System.out.println(projecoesIndicadoresFinanceiros.getValorPrese nteLiquido()); System.out.println(projecoesIndicadoresFinanceiros.isValorPresen teLiquidoViavel()); System.out.println(projecoesIndicadoresFinanceiros.getValorPrese nteLiquidoAnualizado()); System.out.println(projecoesIndicadoresFinanceiros.isValorPresen teLiquidoAnualizadoViavel()); System.out.println(projecoesIndicadoresFinanceiros.getIndiceBene ficioCusto()); System.out.println(projecoesIndicadoresFinanceiros.isIndiceBenef icioCustoViavel()); System.out.println(projecoesIndicadoresFinanceiros.getPeriodoRec uperacaoInvestimento()); System.out.println(projecoesIndicadoresFinanceiros.isPeriodoRecu peracaoInvestimentoViavel()); // Reajustes Margens reajustes = (Margens) core.estimarReajustes(); System.out.println("Margens"); System.out.println(reajustes.getCustosFixos()); System.out.println(reajustes.getCustosFixosPercentual()); System.out.println(reajustes.getCustosVariaveisPercentual()); System.out.println(reajustes.getLucroPercentual()); // Otimizações ArrayList<InterfaceProduto> interfaceProdutosOtimizacoes = (ArrayList<InterfaceProduto>) core.estimarOtimizacoes(); for (InterfaceProduto interfaceProdutoOtimizacoes : interfaceProdutosOtimizacoes) { 61 189 190 191 System.out.println("Quantidade"); System.out.println(interfaceProdutoOtimizacoes.getQuantidade()); } Quadro 10 - Exemplo de operacionalidade do framework Na linha 1, a classe Principal herda as características da classe abstrata Core a qual representa a estrutura central do framework, onde são injetadas as dependências, de onde são obtidas referências para novos objetos e de onde são obtidas também as estimativas de cada fase. Das linhas 8 a 100 são demonstradas as injeções de cada uma das dependências de objetos. Como exemplo, na linha 9, é obtida a referência de um objeto pela sua interface, em seguida, das linhas 10 a 13, são populados os métodos assessores do objeto e então é efetuada a injeção desta dependência no núcleo do framework na linha 16. Vale lembrar que a implementação do Quadro 10 é relativa ao estudo de caso, o qual não fez uso de todas as fases do framework e, portanto da linha 68 a 100 os valores são fictícios e somente de carácter demonstrativo. Das linhas 102 a 191, são obtidas as estimativas. Como exemplo, na linha 105 a aplicação cria uma referência de objeto de classe Controles com o nome metasControles o qual obtêm do framework a estimativa referente as metas por meio de um Cast para o objeto de classe (Controles) do método de núcleo do framework estimarMetasControles(). O novo objeto calculado pelo framework é criado a partir da referência do objeto injetado, ou seja, o objeto relativo à aplicação é criado pelo framework na própria aplicação. 3.8 RESULTADOS E DISCUSSÃO A ferramenta foi concebida na forma de um framework e, portanto, não se trata de um software final para utilização. O uso deste framework será mais relacionado ao desenvolvedor do software que fará uso das suas funcionalidades que ao usuário final que utilizará o software concebido pelo desenvolvedor. Ainda assim, com o objetivo de verificar as funcionalidades, foi procedido o estudo de um caso real, relacionado a uma empresa na área de serviços. Os dados que seriam advindos de um software foram diretamente fornecidos pelo responsável da empresa1 e podem ser visualizados no formulário de requisição de dados descrito no Apêndice B. 1 Foi optado por divulgar o nome da empresa em folha de assinatura a parte e que consta apenas na versão impressa. A empresa não coibiu a publicação dos dados em versão não impressa. Esta foi uma opção feita pelo autor do trabalho, em consideração ao regime de capital não aberto adotado pela empresa. 62 Como mencionado na operacionalidade, pode-se utilizar o conjunto de todas as fases ou apenas aquela que mais condizer à circunstância evidenciada. A fase utilizada para o estudo de caso foi aquela relativa às projeções. Isto porque trata-se de uma empresa relacionada a serviços impossibilitando o uso da fase otimizações, vinculada ou ao processo produtivo (indústria), ou as vendas (comércio) e porque a empresa opta por incorporar o custos dos serviços a composição dos custos fixos, uma estratégia comum a área de serviços o que acaba nesse caso por impossibilitar mensurar o custo do serviço prestado, elemento necessário ao grafo de precedência de cálculos, utilizado pelo framework e das quais fazem uso a fase metas e reajustes e desta forma impossibilitando o uso destas fases. A aplicabilidade foi verificada através da análise de critérios de avaliação pelo responsável onde o mesmo indicou a importância do indicador mensurado e sua opinião baseada na sua experiência com relação à precisão da estimativa mencionada. Os dados informados pelo responsável da empresa podem ser visualizados no relatório de entrega das estimativas no Apêndice B. Assim, após análise do relatório de entrega das estimativas, no que tange as projeções é possível determinar que os indicadores apresentam relevância mas ainda passíveis de melhorias com relação a precisão das estimativas. 63 4 CONCLUSÕES O conjunto de fundamentos levantados foi suficiente para atender aos propósitos a concepção do presente trabalho. Dentre os quais, pode-se mencionar a análise de obras e materiais inerentes às funções empresariais, custos, indicadores e balanced scorecard como forma de compreender melhor a perspectiva empresarial, até então desconhecida pelo autor por não se tratar de assunto diretamente relacionado à área de atuação da pesquisa, mas, ainda assim, vinculada à sua implementação final. Outro aspecto importante diz respeito às pesquisas relacionadas as áreas de estatística e inteligência artificial, as quais, em conjunto, permitiram a implementação das estimativas propostas no decorrer do trabalho. No que diz respeito a frameworks, está o conjunto de características inerentes à sua implementação, que contribuíram para a construção da arquitetura de forma objetiva. Vale citar também que o resultado final obtido trata-se de escolhas de implementação para a ferramenta. Para muitas situações, várias linhas de pensamento poderiam conduzir a implementação. Procurou-se optar sempre por aquela que estivesse em conformidade com os conceitos elencados e foram, na verdade, os conceitos os causadores de maior empecilho. Isto porque, por muitas vezes, dava-se a tal situação em que escolher a alternativa X implicaria incorrer num erro de arquitetura quebrando de certa forma a injeção de dependência, ou escolher a alternativa Y e deixar de calcular o coeficiente de correlação ferindo um aspecto estatístico. Pode-se dizer, então, que a maior dificuldade encontrada foi tentar atender a todos os aspectos conceituais de forma amena e não incorrer em quebra de paradigma de nenhum dos conceitos levantados. Por fim, chega-se ao framework proposto o qual procura atender aos objetivos mencionados através da concepção de suas fases de processamento. Para a fase metas, os indicadores são gerados a partir das margens fornecidas pela aplicação e decompostos por todos os cálculos intermediários necessários para se atingir os indicadores. São retornados a aplicação o conjunto de todos os cálculos intermediários e indicadores gerados como forma de situar as metas necessárias aos próximos períodos. Para a fase projeções aplica-se a regressão linear aos totalizadores e indicadores injetados pela aplicação, forma esta de situar as próximas estimativas dos valores injetados. Para a fase reajustes, inicialmente é estimado o próximo período a partir dos dados injetados relativos aos períodos anteriores, então a partir do período estimado calcula-se em ordem inversa por meio do grafo de precedência de cálculos as margens necessárias aos valores vivenciados, como forma de adequar a empresa a 64 realidade estimada para o próximo período. Para a fase otimizações, são injetados pela aplicação dados relativos ao processo produtivo ou de venda de produtos da empresa, e com tais dados são calculados então as quantidades necessárias de cada produto para atingir-se o máximo de lucro possível, como forma de otimizar a linha de produção ou o processo de compra de estoque da empresa. Para as fases utilizadoras de modelo de regressão linear, existe sempre um atributo adicional em relação ao seu original, relativo ao coeficiente de correlação, o qual indica a precisão da estimativa do atributo referenciado. Assim, avalia-se o resultado final do framework desenvolvido em uma escala de ruim a ótimo como moderado, pois apesar dos objetivos estarem inicialmente abrangidos, fazem-se necessários ainda alguns importantes elementos, fruto talvez de contribuições futuras através de extensões à implementação proposta. 4.1 EXTENSÕES Dentre as propostas para contribuição, está o crescimento do grafo de precedência de cálculos incluindo-se possivelmente mais indicadores, os quais implicariam mais pesquisas relativas à análise de custos e incrementariam ainda mais os nós precedentes secundários, fornecendo, assim, uma maior quantidade de informações relacionadas ao negócio. Outra proposta está relacionada ao modelo de estimativas, o qual pode ser implementado não apenas com regressão linear simples, mas também com a regressão linear múltipla, dentre outros métodos para estimativas de valor. 65 REFERÊNCIAS BIBLIOGRÁFICAS AZEVEDO, Paulo Roberto Medeiros de. Modelos de regressão linear. 1. ed. Natal: Editora da UFRN, 1997. 211 p. BRAUDE, Eric. Projeto de software: Da programação à arquitetura: uma abordagem baseada em Java. Porto Alegre: Bookman, 2005. 619 p. CAMPOS, José Antonio. Cenário Balanceado: painel de indicadores para a gestão estratégica dos negócios. 1. ed. São Paulo: Aquariana, 1998. 181 p. CASOTTI, Fábio Alexandre Gaion. Um sistema de suporte a decisão baseado em programação multiobjetivo. 1993. 174 f. Tese (Mestrado) - Curso de Engenharia Elétrica, Departamento de Telemática, Unicamp, Campinas, 1993. CHIAVENATO, Idalberto. Introdução à teoria geral da administração. 6. ed. Rio de Janeiro: Campus, 2000. 700 p. CORREA, Cristiane; MANO, Cristiane. O preço de uma decisão errada. São Paulo, 2005. Disponível em: <http://exame.abril.com.br/negocios/gestao/noticias/o-preco-de-uma-decisaoerrada-m0039779>. Acesso em: 07 set. 2011. DIAS, Sérgio Luiz Vaz. Indicadores de desempenho e gestão empresarial. Porto Alegre: Sebrae, 2007. Disponível em: <http://www.sebrae-rs.com.br/produtosservicos/publicacoes/indicadores-desempenho-gestao-empresarial/429.aspx>. Acesso em: 28 maio 2012. ENSSLIN, Leonardo; MONTIBELLER NETO, Gilberto; NORONHA, Sandro Macdonald. Apoio a decisão: Metodologia para estruturação de problemas e avaliação multicritério de alternativas. Florianópolis: Insular, 2001. 296 p. FOWLER, Martin. Inversion of Control Containers and the Dependency Injection pattern. Chicago, 2004. Disponível em: <http://martinfowler.com/articles/injection.html>. Acesso em: 02 jun. 2012. GOMES, Luiz Flavio Autran Monteiro; ARAYA, Marcela Cecilia González; CARIGNANO, Claudia. Tomada de decisão em cenários complexos. São Paulo: Pioneira Thomson Learning, 2004. 168 p. HECKLER, Luiz Fernando. Redmine GCO: uma ferramenta de apoio para a Gerência de Configuração. 2009. 56 f. Trabalho de Conclusão de Curso (Graduação) - Curso de Ciências da Computação, Departamento de Instituto de Informática, Universidade Federal do Rio Grande do Sul, Rio Grande do Sul, 2009. 66 HEINZLE, Roberto. Um modelo de engenharia do conhecimento para sistemas de apoio a decisão com recursos para raciocínio abdutivo. 2011. 251 f. Tese (Doutorado em Engenharia e Gestão do Conhecimento) - Curso de Pós-graduação em Engenharia e Gestão do Conhecimento, Universidade Federal de Santa Catarina, Florianópolis. KAPLAN, Robert; NORTON, David. Mapas estratégicos: Convertendo ativos intangíveis em resultados tangíveis. 1. ed. Rio de Janeiro: Elsevier, 2004. 469 p. KOTLER, Philip. Administracao de marketing: analise, planejamento, implantacao e controle. 5. ed. São Paulo: Atlas, 1998. 725 p. LINS, Marcos Pereira Estellita. Programação linear: com aplicações em teoria dos jogos e avaliação de desempenho. 1. ed. Rio de Janeiro: Editora Interciência, 2006. 292 p. MARION, José Carlos; LUDÍCIBUS, Sergio de. Curso de contabilidade para nãocontadores: Para as Áreas de Administração, Economia, Direito e Engenharia. 6. ed. São Paulo: Atlas, 2009. 274 p. PADAVEZE, Clóvis Luís. Curso básico gerencial de custos. 1. ed. São Paulo: Pioneira Thomson Learning, 2003. 377 p. POSSAMAI, Janaina Poffo. Estatística. [mensagem pessoal]. Mensagem recebida por: <[email protected]>. Acesso em: 16 maio 2012. RUSSELL, Stuart Jonathan; NORVIG, Peter. Inteligência Artificial. 2. ed. Rio de Janeiro: Elsevier, 2004. 1021 p. SEBRAE. Como elaborar um plano de vendas. Belo Horizonte, 2007. Disponível em: <http://www.biblioteca.sebrae.com.br/bds/bds.nsf/A15B930602D0F967832573D900489A03/ $File/NT00037492.pdf>. Acesso em: 07 set. 2011. SEBRAE. Procedimentos e controles. São Paulo, 2004. Disponível em: <http://antigo.sp.sebrae.com.br/principal/melhorando%20seu%20neg%C3%B3cio/orienta%C 3%A7%C3%B5es/finan%C3%A7as/procctrl/default.aspx>. Acesso em: 27 mai. 2012. SILVA, Marcus Vinicius Drissen. Um arcabouço de suporte à tomada de decisão colaborativa para o gerenciamento da evolução de empresas virtuais. 2010. 272 f. Tese (Doutorado) - Curso de Engenharia Elétrica, Departamento de Centro Tecnológico, Universidade Federal de Santa Catarina, Florianópolis, 2010. SOUZA, Acilon Batista de. Projetos de investimento de capital: Elaboração, Análise e Tomada de Decisão. São Paulo: Atlas, 2003. 216 p. SOUZA, Alceu; CLEMENTE, Ademir. Decisões financeiras e análise investimentos: Fundamentos, técnicas e aplicações. 5. ed. São Paulo: Atlas, 2004. 178 p. de 67 STAIR, Ralph M; REYNOLDS, George W. Princípios de sistemas de informação. 9. ed. São Paulo: Cengage Learning, 2011. 590 p. WALLS, Craig; BREIDENBACH, Ryan. Spring em ação. 1. ed. Rio de Janeiro: Editora Ciência Moderna Ltda, 2006. 445 p. 68 APÊNDICE A – Detalhamento dos casos de uso Este Apêndice apresenta a descrição dos principais casos de uso descritos na seção de especificação deste trabalho. UC01 - Fornece interface de referência public UseCase: Fornecer interface padrão para entrada de dados Scenarios Fornecer interface {Principal}. 1- Sistema implementa interface fornecida pelo framework 2- Sistema solicita requisições através dos métodos públicos UC02 - Retorna lista de metas public UseCase: Retorna lista contendo as metas necessárias para a empresa baseadas nas informações fornecidas pelo sistema por meio da implementação da interface. Constraints Approved Pre-condition . As informações necessárias foram fornecidas pelo sistema através da implemantação da interface. Approved Post-condition . O sistema dispõe da lista de metas fornecida pelo framework. Scenarios Retornar metas {Principal}. 1- Sistema requisita metas 2- Framework percorre grafo de precedência de cálculos, caminhamento raiz nó 3- Framework efetua cálculos relacionados a construção da lista de metas 4- Framework retorna lista de metas Instanciar elementos {Alternativo}. 2.1 - Até finalizar lista de cálculos 2.1.1 - Instanciar cálculo 2.1.2 - Instanciar seus elementos 2.1.3 - Retornar ao passo 2.1 Tratar erro {Exceção}. 1- Na ocorrência de um erro 2- Framework empilha erro na lista de logs 3- Framework retorna ao passo 1 do cenário "Retornar metas" UC03 - Retorna lista de projeções public UseCase: Retorna lista contendo as projeções para a empresa baseadas nos totalizadores informados. Constraints 69 Approved Pre-condition . Lista de totalizadores. Approved Post-condition . O sistema dispõe da lista de projeções fornecida pelo framework. Scenarios Retornar projeções {Principal}. 1- Sistema requisita projeções 2- Framework instancia classe de regressão linear 3- Framework efetua projeções com uso da classe 4- Framework retorna lista de projeções Instanciar elementos {Alternativo}. 2.1 - Até finalizar lista de funções 2.1.1 - Instanciar função 2.1.2 - Instanciar seus elementos 2.1.3 - Retornar ao passo 2.1 Tratar erro {Exceção}. 1- Na ocorrência de um erro 2- Framework empilha erro na lista de logs 3- Framework retorna ao passo 1 do cenário "Retornar projeções " UC04 - Retorna lista de reajustes public UseCase: Retorna lista contendo reajustes para a empresa baseadas nos valores praticados. Constraints Approved Pre-condition . Valores praticados atualmente. Approved Post-condition . O sistema dispõe da lista de correções fornecida pelo framework. Scenarios Retornar reajustes {Principal}. 1- Sistema requisita reajustes 2- Framework efetua projeção do próximo período com base nos valores anteriores 3- Framework percorrer grafo de precedência de cálculos, caminhamento nó raiz 4- Framework efetua cálculos necessários aos reajustes com base na projeção 5- Framework retorna lista de reajustes Instanciar elementos {Alternativo}. 3.1 - Até finalizar lista de cálculos 3.1.1 - Instanciar cálculo 3.1.2 - Instanciar seus elementos 3.1.3 - Retornar ao passo 2.1 Tratar erro {Exceção}. 1- Na ocorrência de um erro 2- Framework empilha erro na lista de logs 3- Framework retorna ao passo 1 do cenário "Retornar reajustes" 70 UC05 - Retorna lista de otimizações public UseCase: Retorna lista contendo as otimizações para a empresa baseadas na lista de produtos atualmente vivenciada pelo processo produtivo ou de venda. Constraints Approved Pre-condition . Lista de produtos. Approved Post-condition . O sistema dispões da lista de otimizações referentes as quantidades produzidas/vendidas de produtos. Scenarios Retornar otimizações {Principal}. 1- Sistema requisita otimizações 2- Framework compõe modelo matemático referente a lista informada 3- Framework efetua cálculos referentes ao tableau 4- Framework retorna lista de otimizações contendo as quantidades necessárias Tratar erro {Exceção}. 1- Na ocorrência de um erro 2- Framework empilha erro na lista de logs 3- Framework retorna ao passo 1 do cenário "Retornar otimizações" 71 APÊNDICE B - Formulário de requisição de dados Solicito respeitosamente o preenchimento das questões a seguir a fim de testar a funcionalidade da ferramenta desenvolvida pela construção do modelo de estimativas a ser entregue para apreciação e feedback quando da sua conclusão. Informações relacionadas à estimativa necessária de vendas: 1- Qual a total de custos fixos mensais dos últimos três períodos da sua empresa? R: Março Abril Maio R$ 54.000,00 R$ 54.000,00 R$ 54.000,00 ( ) Relativo a outro segmento, não controlado ou desconhecido 2- Qual o percentual médio mensal que estes custos representam em relação ao faturamento? R: 64,00% ( ) Relativo a outro segmento, não controlado ou desconhecido 3- Qual o percentual médio mensal de custos variáveis? R: 32,00% ( ) Relativo a outro segmento, não controlado ou desconhecido 4- Qual a margem percentual de lucro mensal normalmente desejada? R: 4,00% ( ) Relativo a outro segmento, não controlado ou desconhecido Informações relacionados a estimativa futura dos valores já evidenciados: 5- Qual o ativo total da sua empresa? R: ( X ) Relativo a outro segmento, não controlado ou desconhecido 6- Qual o faturamento médio por cliente dos últimos três períodos? R: Março Abril Maio R$ 110,00 R$ 105,00 R$ 120,00 ( ) Relativo a outro segmento, não controlado ou desconhecido 7- Qual o faturamento total mensal dos últimos três períodos? R: Março Abril Maio R$ 98,00 R$ 82,00 R$ 97,00 ( ) Relativo a outro segmento, não controlado ou desconhecido 8- Qual o faturamento total liquido dos últimos três períodos? R: Março Abril Maio R$ 53.000,00 77.000,00 92.000,00 72 ( ) Relativo a outro segmento, não controlado ou desconhecido 9- Qual o saldo final do fluxo de caixa dos últimos três períodos? R: Março Abril Maio R$ 7.000,00 (R$ 7.000,00) R$ 11.000,00 ( ) Relativo a outro segmento, não controlado ou desconhecido 10- Quais os gastos com a fabricação do produto dos últimos três períodos? R: Março Abril Maio ( X ) Relativo a outro segmento, não controlado ou desconhecido 11- Quais os gastos gerais dos últimos três períodos? R: Março Abril Maio ( X ) Relativo a outro segmento, não controlado ou desconhecido 12- Qual o lucro liquido operacional apresentado nos últimos três períodos? R: Março Abril Maio 8,00% -9,00% 12,50% ( ) Relativo a outro segmento, não controlado ou desconhecido 13- Qual o total de orçamentos aprovados dos últimos três períodos? R: Março Abril Maio 700 710 690 ( ) Relativo a outro segmento, não controlado ou desconhecido 14- Qual o total média de orçamentos elaborados dos últimos três períodos? R: Março Abril Maio 115 118 118 ( ) Relativo a outro segmento, não controlado ou desconhecido 15- Qual a média de produtos com defeito nos últimos três períodos? R: Março Abril Maio ( X ) Relativo a outro segmento, não controlado ou desconhecido 16- Qual a média total de produtos vendidos nos últimos três períodos? R: Março Abril Maio ( X ) Relativo a outro segmento, não controlado ou desconhecido 73 Informações relacionadas a otimização do processo de vendas: 17- Qual os 5 principais produtos da empresa, sua quantidade média de vendas e o lucro obtido com cada um deles no último período? R: Produto Quantidade Lucro ( X ) Relativo a outro segmento, não controlado ou desconhecido 74 Relatório de entrega das estimativas / Formulário de satisfação O relatório é dividido em quatro grupos, as metas que são os valores que a empresa necessita atingir para obter as margens previamente informadas, as projeções que são os valores previstos para os próximos períodos em função dos valores informados já ocorridos, os reajustes que representam o rearranjo das margens do produto em função do mercado vivenciado, e as otimizações que representam a quantidade necessária estimada de produtos a serem vendidos/produzidos em função do conjunto de produtos vendidos/produzidos atualmente. Para cada um dos valores/indicadores existem dois campos com escalas de 1 a 5 relativos à importância atribuída para o indicador e a expectativa sobre a precisão da estimativa baseada na sua experiência com estes valores. Importância Muito importante 1 Muito Importante Regular Irrelevante 2 3 4 5 irrelevante Expectativa Muito preciso Preciso Regular Impreciso Muito impreciso 1 2 3 4 5 75 Metas estimadas Controles Estimativa Importância Expectativa Estimativa Importância Expectativa Percentual total de margens Markup percentual Custo percentual da mercadoria vendida Margem percentual de contribuição Totalizadores Faturamento total Saldo fluxo caixa Custos fixos Gastos fabricação Faturamento total liquido Gastos gerais Lucro liquido operacional total Faturamento por cliente Faturamento total mês anterior Produtos com 76 defeito Total de produtos Ativo total Orçamentos aprovados Orçamentos elaborados Indicadores Grau de dependência Gasto unitário fabricação Aumento faturamento Qualidade Lucro liquido operacional Resultado operacional Eficiência comercial Estimativa Importância Expectativa 77 Projeções estimadas Totalizadores Estimativa Junho Importância Expectativa Julho Agosto R$ 63.333 R$ 55.333 R$ 47.333 1 2 (R$ 23.766) (R$ 30.866) (R$ 37.966) 1 2 Custos fixos R$ 54.000 R$ 54.000 R$ 54.000 2 3 Faturamento R$ 58.333 R$ 50.333 R$ 42.333 1 2 (R$ 25.136) (R$ 32.746) (40.356) 1 3 R$ 99 R$ 96 R$ 94 2 3 721 726 731 2 3 121 123 124 1 2 Faturamento total Saldo fluxo caixa total liquido Lucro liquido operacional total Faturamento por cliente Orçamentos aprovados Orçamentos elaborados Indicadores Estimativa Junho Grau de dependência Gasto unitário fabricação Aumento faturamento Qualidade Lucro liquido operacional Resultado operacional Eficiência comercial Julho Importância Expectativa Agosto 78 Indicadores financeiros Valor presente liquido Valor presente liquido anualizado Índice beneficio custo Retorno investimento adicionado Taxa interna retorno Período recuperação investimento Ponto Fischer Estimativa Importância Expectativa 79 Reajustes estimados Reajustes Custos fixos percentual Custos variáveis percentual Lucro percentual Estimativa Importância Expectativa 80 Otimizações estimadas Produto Lucro final obtido: Quantidade necessária estimada 81 ANEXO A Autorização para utilização da pesquisa na concepção da monografia Eu, ______________________________, RG_______________, CPF_______________ autorizo a utilização e atesto a veracidade dos dados por mim informados na pesquisa relacionada à concepção da monografia do acadêmico Rudimar Imhof. _____________________________________