CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA FACULDADE DE TECNOLOGIA DE SÃO BERNARDO DO CAMPO “ADIB MOISÉS DIB” EDUARDO CLÁUDIO NICÁCIO JONAS POPOLIN FREI PEDRO HENRIQUE DE SOUZA QUISSELARO SISTEMA DEDICADO PARA CONTROLE E REPOSIÇÃO DE ESTOQUE: FARO Technologies do Brasil Ltda. São Bernardo do Campo – SP Junho/2012 EDUARDO CLÁUDIO NICÁCIO JONAS POPOLIN FREI PEDRO HENRIQUE DE SOUZA QUISSELARO SISTEMA DEDICADO PARA CONTROLE E REPOSIÇÃO DE ESTOQUE: FARO Technologies do Brasil Ltda. Trabalho de conclusão de curso apresentado ao Centro Estadual de Educação Tecnológica Paula Souza, à Faculdade de Tecnologia de São Bernardo do Campo “Adib Moisés Dib” como requisito parcial à obtenção do título de tecnólogo em Informática para Gestão de Negócios. Orientadora: Professora Me. Sueli Ap. Loddi. São Bernardo do Campo – SP Junho/2012 EDUARDO CLÁUDIO NICÁCIO JONAS POPOLIN FREI PEDRO HENRIQUE DE SOUZA QUISSELARO SISTEMA DEDICADO PARA CONTROLE E REPOSIÇÃO DE ESTOQUE: FARO Technologies do Brasil Ltda. Trabalho de conclusão de curso apresentado ao Centro Estadual de Educação Tecnológica Paula Souza, à Faculdade de Tecnologia de São Bernardo do Campo “Adib Moisés Dib” como requisito parcial à obtenção do título de tecnólogo em Informática para Gestão de Negócios. Monografia defendida e aprovada em: _____/_____/ 2012 Banca examinadora: ______________________________________ Prof. Me. Sueli Aparecida Loddi, FATEC SBC – Orientador ______________________________________ Prof. Me. Gonçalo Siqueira, FATEC SBC – Avaliador ______________________________________ Prof. Me. Rosângela Kronig, FATEC SBC – Avaliador Dedico este trabalho à minha esposa Andréa, aos meus familiares e aos meus amigos que, ao longo dos últimos três anos, me apoiaram e me incentivaram a dar o melhor de mim. Eduardo Cláudio Nicácio Dedico este trabalho a minha esposa, meus pais, amigos e professores que me apoiaram e me aguentaram durante essa fase da minha vida de estudos. Jonas P. Frei Dedico este trabalho a minha família, amigos da faculdade e a todos os professores. Pedro Henrique S. Quisselaro Aos professores da FATEC-SBC, pela dedicação e paixão com que ministraram todas as aulas ao longo do curso. À nossa professora orientadora, cuja contribuição à conclusão deste trabalho de pesquisa foi de valor inestimável. Às nossas famílias, aos nossos amigos e a todos aqueles que, muito ou pouco, de uma forma ou de outra, nos incentivaram e nos apoiaram ao longo dos últimos três anos. “Cada um pensa em mudar a humanidade, mas ninguém pensa em mudar a si mesmo”. Leon Nikolaievitch Tolstoi (1828-1910) RESUMO Sistemas de Informação são ferramentas indispensáveis para a tomada de decisões dentro das empresas, seja uma decisão de caráter operacional, gerencial ou estratégico. Eles atuam no suporte de todos os processos que compõem a empresa, desde os processos ligados a controladoria, como processos financeiros, contábeis e fiscais, até processos relacionados a materiais, como compras, produção e estoque. Para que os Sistemas de Informação cumpram suas metas, seu processo de desenvolvimento deve levar em conta as boas práticas de Engenharia de Software. Este trabalho teve como objetivo geral abordar os conceitos Gestão de Estoques e Engenharia de Software. Como objetivo específico apresentar o desenvolvimento de um Sistema de Informação para Controle de Estoque, para a empresa FARO Technologies do Brasil Ltda. A metodologia adotada foi uma pesquisa bibliográfica no que tange a Gestão de Estoques e Engenharia de Software, seguida de uma pesquisa de campo para levantamento de necessidades junto empresa e construção do Sistema. Palavras-chaves: Sistema de Informação. Gestão de Estoque. Engenharia de Software. Faro Technologies. ABSTRACT Information Systems are indispensable tools for a decision-making inside companies, even if it is an operational, management or strategic decisions. They acting as a support for all processes that composes the company, from processes related to controlling, financial, accounting and fiscal to processes related to materials, purchasing, production and inventory. For an Information System meet your goals, your development process might take in consideration the good practices from Software Engineer. This study had general objectives to show the concepts about Inventory Management and Software Engineer. Specific objectives were to present the development of an Information System for Inventory Management for the company Faro Technologies do Brasil Ltda. The methodology used was a literature research in terms of Inventory Management and Software Engineer, followed by a field research for needs assessment with the company and the developing of the System. Keywords: Information System. Inventory Management. Software Engineering. Faro Technologies. LISTA DE FIGURAS Figura 1.1 – Abrangência do MRP e do MRP II....................................................... 32 Figura 1.2 – Visão geral de um ERP........................................................................ 33 Figura 2.1 – Modelo em Cascata............................................................................. 36 Figura 2.2 – Modelo Incremental.............................................................................. 37 Figura 2.3 – Engenharia de software orientada a reuso.......................................... 37 Figura 2.4 – Tipos de Requisitos não funcionais.....................................................41 Figura 2.5 – Uma visão em espiral do processo de engenharia de requisitos........ 42 Figura 2.6 – Sistema de contexto para estação meteorológica............................... 44 Figura 2.7 – Caso de uso estação meteorológica.................................................... 44 Figura 2.8 – Objetos da estação meteorológica....................................................... 45 Figura 2.9 – Diagrama de estado da estação meteorológica................................... 46 Figura 2.10 – Interfaces da estação meteorológica................................................. 46 Figura 3.1 – Diagrama de Casos de Uso................................................................. 54 Figura 3.2 – Diagrama de classes da camada de modelos..................................... 62 Figura 3.3 – Diagrama de classes da camada de negócios.................................... 63 Figura 3.4 – Diagrama de classes da camada de acesso a dados.......................... 64 Figura 3.5 – Diagrama de classes utilitárias............................................................. 65 Figura 3.6 – Modelo Entidade-Relacionamento (MER)............................................ 66 Figura 3.7 – Tela inicial de login do sistema............................................................ 70 Figura 3.8 – Tela inicial de alteração de senha........................................................ 71 Figura 3.9 – Tela inicial de redefinição de senha..................................................... 72 Figura 3.10 – Tela inicial com informações no dashboard e as opções do menu...73 Figura 3.11 – Tela de manutenção de Clientes.......................................................74 Figura 3.12 – Tela de manutenção de Fornecedores.............................................. 75 Figura 3.13 – Tela de manutenção de Inventário..................................................... 76 Figura 3.14 – Tela de manutenção de Tipo de Uso................................................. 77 Figura 3.15 – Tela de manutenção de Usuário......................................................... 78 Figura 3.16 – Tela de manutenção de Peças........................................................... 79 Figura 3.17 – Tela de Registro de Entrada de Peças............................................... 80 Figura 3.18 – Tela de Registro de Saída de Peças.................................................. 81 Figura 3.19 – Tela de Contato com os autores......................................................... 82 Figura 3.20 – Tela de Relatório Consolidado............................................................ 83 Figura 3.21 – Tela de Relatório Consolidado exportado para Excel..........................84 Figura 3.22 – Tela de Relatório de Peças com Quantidades Críticas.......................85 Figura 3.23 – Tela de Relatório de Peças com Quantidades Critica exportado para Excel........................................................................................................................... 86 LISTA DE QUADROS Quadro 1.1 – Detalhamento dos principais custos do gerenciamento de estoque .. 23 Quadro 1.2 – Componentes básicos de um sistema de informação..........................27 Quadro 3.1 – Descrição de Caso de Uso “Manter Cadastro de Usuário” ..................55 Quadro 3.2 – Descrição de Caso de Uso “Manter Estoque” .....................................55 Quadro 3.3 – Descrição de Caso de Uso “Manter Cadastro de Itens”..................... 56 Quadro 3.4 – Descrição de Caso de Uso “Manter Registro de Entrada de Peças”. 56 Quadro 3.5 – Descrição de Caso de Uso “Manter Registro de Saída de Peças”.... 57 Quadro 3.6 – Descrição de Caso de Uso “Gerar Relatórios”................................... 57 Quadro 3.7 – Descrição de Caso de Uso “Manter Cadastro de Fornecedores”...... 58 Quadro 3.8 – Descrição de Caso de Uso “Manter Cadastro de Clientes” ............... 58 Quadro 3.9 – Descrição de Caso de Uso “Manter Cadastro de Tipo de Utilização” 59 Quadro 3.10 – Elicitação de Requisitos Funcionais................................................. 60 Quadro 3.11 – Elicitação de Requisitos Não-Funcionais ........................................ .61 Quadro 3.12 – Elicitação de Regras de Negócio .....................................................61 Quadro 3.13 – Lista das ferramentas e recursos utilizados no processo de desenvolvimento do projeto...................................................................................... 67 Quadro 3.14 – Configuração de Hardware............................................................... 67 LISTA DE ABREVIATURAS E SIGLAS DAL Data Access Layer DAO Data Access Object ERP Enterprise Resource Planning MER Modelo Entidade-Relacional MPS Master Production Schedule MRP II Manufacturing Resource Planning MRP Material Requirement Planning MVC Model-View-Controller RUP Rational Unified Process SBC São Bernardo do Campo SCM Supply Chain Management TI Tecnologia da Informação UML Unified Modeling Language SUMÁRIO INTRODUÇÃO ......................................................................................................... 14 1 INTRODUÇÃO À GESTÃO DE ESTOQUES .............................................. 16 1.1 Gestão de Estoques .................................................................................. 16 1.1.1 Porque manter estoques ............................................................................. 17 1.2 Uma visão dos problemas com estoques ............................................... 19 1.2.1 Tipos de demanda....................................................................................... 20 1.3 Características básicas da gestão de estoques...................................... 21 1.3.1 Restrições e custos relevantes de estoques ............................................... 22 1.4 Vantagem competitiva ............................................................................. 24 1.4.1 A inovação como vantagem competitiva .................................................... 26 1.4.2 A importância da Tecnologia da Informação .............................................. 27 1.5 TI aplicada à Gestão de Estoques ........................................................... 29 1.5.1 MRP, MRP II e ERP ................................................................................... 29 2 INTRODUÇÃO À ENGENHARIA DE SOFTWARE .................................... 35 2.1 Processos de Desenvolvimento de Software ......................................... 35 2.2 RUP - Rational Unified Process .............................................................. 37 2.2.1 Fases do RUP ............................................................................................ 38 2.3 Engenharia de Requisitos ....................................................................... 39 2.4 Projeto e implementação ......................................................................... 42 2.5 Testes de software ................................................................................... 47 2.6 Implantação .............................................................................................. 48 2.7 Manutenção Pós-entrega ......................................................................... 50 2.8 UML – Unified Modeling Language ......................................................... 51 3 O PROJETO DE SOFTWARE ................................................................... 53 3.1 A Empresa ................................................................................................ 53 3.2 Fase de Concepção e Elaboração ........................................................... 54 3.2.1 Modelagem de negócio .............................................................................. 54 3.2.2 Elicitação de Requisitos ............................................................................. 59 3.2.3 Análise ....................................................................................................... 62 3.2.4 Implementação ........................................................................................... 66 3.2.5 Gerenciamento de configuração e ambiente .............................................. 66 3.3 Construção ............................................................................................... 68 3.3.1 Modelagem de Negócio / Requisitos / Análise ............................................ 68 3.3.2 Implementação ........................................................................................... 68 3.3.3 Testes ........................................................................................................ 69 CONCLUSÃO .......................................................................................................... 87 BIBLIOGRAFIA ....................................................................................................... 88 14 INTRODUÇÃO As grandes empresas do setor de manufatura necessitam diversas ferramentas para monitorar o processo de montagem e reposição de estoque de produtos utilizados em sua linha de produção. Dependendo do produto, diversas matérias primas diferentes são necessárias para sua fabricação, e a falta de qualquer destes itens afeta diretamente o desempenho produtivo da organização, acarretando perda da confiabilidade pelos seus clientes e prejuízos financeiros. As ferramentas da Tecnologia da Informação se tornaram indispensáveis para esse tipo de controle bem como para todos os processos de fabricação. JUSTIFICATIVA: As ferramentas de TI se tornaram indispensáveis para as tarefas diárias de Gestão de Estoque, facilitando a vida do gestor no controle e aquisição de matéria prima, evitando desperdício de materiais ou gastos desnecessários que podem prejudicar o caixa de uma empresa com compras em excesso. OBJETIVOS: Neste trabalho são apresentadas as facilidades que uma ferramenta de TI pode trazer para a tarefa diária de Gestão de Estoque e os conceitos básicos utilizados na modernidade pelas empresas sobre este assunto. Como objetivo específico, é apresentada uma ferramenta desenvolvida para controle de estoque desenvolvido para a empresa FARO Technologies do Brasil, empresa na qual um dos autores desta publicação trabalha e que foi verificada a necessidade de um sistema informatizado para este processo. METODOLOGIA: O desenvolvimento deste trabalho se apresenta pela fundamentação teórica sobre Gestão de Estoque e Engenharia de Software e seu desenvolvimento na qual é abordado o Gerenciamento de Projetos e suas fases. Ao final da fundamentação teórica, é apresentada uma ferramenta de TI desenvolvida para Gestão de Estoque. 15 ESTRUTURA: Capítulo 1 - Introdução à Gestão de Estoques: definições, necessidades, problemas, demandas, características, vantagem competitiva e aplicação de TI na Gestão de Estoque; Capítulo 2 - Introdução à Engenharia de Software: definições, processos de desenvolvimento, modelos, metodologias, gerenciamento, implantação e ferramentas de apoio; Capítulo 3 - O Projeto de Software: a empresa, fases do desenvolvimento, casos de uso, diagramas do sistema, gerenciamento de configuração, construção e testes. Conclusão Bibliografia 16 1 INTRODUÇÃO À GESTÃO DE ESTOQUES Desde tempos imemoriáveis, a humanidade tem-se valido de estoques de diversos tipos de suprimentos, de modo a suportar o seu desenvolvimento e a sua sobrevivência. O conceito de gestão de estoques é um conceito universal e está presente em praticamente todos os tipos de empresas, assim como no cotidiano da maioria das pessoas. Segundo Ballou (1993), estoque é "a armazenagem de mercadorias prevendo seu uso futuro [...]". Para Marins (2012), "estoques são acúmulos de recursos entre as fases específicas dos processos de transformação". Em administração, estoque refere-se a mercadorias, produtos finais, acabados ou semiacabados, dentre outros recursos, em posse dos agentes econômicos, que, na definição de Carvalho (2007, p. 3, grifos nossos), são "[...] indivíduos, instituições ou conjunto de instituições que, através das suas decisões e ações, tomadas racionalmente, influenciam de alguma forma a economia. São eles as Famílias [...], as Empresas [...], o Estado [...] e o Capital [...]". No meio empresarial, se por um lado o excesso de estoques representa custos operacionais e perdas de oportunidade do capital, por outro lado níveis baixos de estoque podem originar perdas econômicas devido à falta de produtos (custos de vendas perdidas). 1.1 Gestão de Estoques Martins (2012) afirma que gerir um estoque é, basicamente, o ato de gerir os recursos ociosos e possuidores de valor econômico, destinados ao suprimento das necessidades futuras em uma organização. Bertaglia (2009, p. 331), define o gerenciamento de estoque como "[...] um ramo da administração de empresas que está relacionado com o planejamento e o controle de estoques de materiais ou produtos que serão utilizados na produção ou na comercialização de bens ou serviços". 17 A gestão dos estoques visa, primariamente, manter os recursos ociosos em inventário em constante equilíbrio com o nível econômico ótimo dos investimentos. "E isto é obtido mantendo estoques mínimos, sem correr o risco de não tê-los em quantidades suficientes e necessárias para manter o fluxo da produção [...] em equilíbrio com o fluxo de consumo" (MARTINS, 2012, p. 13). Martins (2012) explica ainda que a gestão de estoques ainda é, apesar da sua importância, extensão e complexidade, negligenciada em muitas empresas, sendo considerada como uma atividade não estratégica e/ou limitada às tomadas de decisão em níveis organizacionais táticos ou operacionais. Contudo, algumas empresas já perceberam as vantagens competitivas de uma eficiente gestão de estoques ao longo de toda a cadeia de suprimentos da qual fazem parte. 1.1.1 Porque manter estoques Os estoques existem devido à diferença de ritmo ou de taxa entre a capacidade de produção (ou fornecimento) e a demanda. Ballou (1993) afirma que, idealmente, haveria uma perfeita sincronização entre oferta e demanda, de forma a tornar a existência de estoques desnecessária. Porém, como é impossível prever a exata demanda futura de um produto ou serviço, e como nem sempre os recursos estão disponíveis a qualquer momento, as organizações acumulam estoques com a finalidade de se assegurar a disponibilidade de suprimentos e a minimizar os custos totais de fabricação e distribuição. Ballou (1993) explica que os estoques são, geralmente, uma das maiores preocupações não só dos gestores de operações, mas também dos gestores financeiros, que se preocupam com os custos inerentes aos recursos consumidos; dos gestores comerciais, que se preocupam com o prejuízo que uma possível indisponibilidade de produtos possa acarretar; e dos gestores fabris, que se preocupam com uma possível capacidade fabril ociosa devido à escassez de matéria-prima. 18 Para Ballou (1993), há seis finalidades às quais se prestam os estoques: 1) Melhorar o nível de serviço oferecido: os estoques auxiliam a área de marketing a vender os produtos de uma empresa. Estes, podendo estar localizados mais próximos dos pontos de venda e com quantidades adequadas, apresentam duas vantagens claras aos clientes: disponibilidade imediata e menor tempo de ressuprimento. Para quem fornece isso significa vantagem competitiva e menores custos com vendas perdidas. Além disso, a empresa pode beneficiar-se da disponibilidade constante de seus produtos, mesmo no caso de ofertas sazonais; 2) Incentivar economias na produção: estoques agem como um elo entre a oferta e a demanda, possibilitando uma produção mais constante e menos suscetível às flutuações das vendas, uma maior estabilidade à força de trabalho, que pode ser mantida em níveis constantes, e um menor custo de preparação dos lotes, que podem ser diminuidos. Isso ocorre porque, à medida que uma organização aumenta os lotes de fabricação de um produto, seu custo unitário cai; 3) Permitir economias de escala: pequenos lotes de compras, gerados para atender a necessidades de produção ou para o abastecimento direto dos clientes, implicam em maiores custos de frete, pois não há volume suficiente que possibilite a obtenção de descontos. De modo semelhante, as mercadorias tendem a diminuir de preço quando sua compra está vinculada à compra de lotes maiores. A isso, dá-se o nome de economia de escala; 4) Proteger contra alterações nos preços: as curvas de oferta e demanda ditam os preços dos bens comprados no mercado aberto, tais como minérios, produtos do agronegócio, petróleo, etc. As organizações podem antecipar suas compras em vista de aumentos previstos de preços. Esta ação acaba por gerar estoques que, de uma forma ou de outra, a área de logística deve administrar; 5) Proteger contra alterações na demanda / tempo de ressuprimento: na maioria das vezes, não é possível prever, com absoluta certeza, a demanda por produtos ou o tempo de ressuprimento em um sistema logístico. Para garantirem a disponibilidade de seus produtos, as empresas devem manter um estoque adicional, também chamado de estoque de segurança, que deve ser adicionado aos estoques regulares, visando atender as necessidades de produção ou do mercado; 6) Proteger contra contingências: as empresas devem manter estoques de reserva para garantir o fornecimento normal em caso de contingências, que incluem, 19 mas não se limitam a, greves, incêndios, catástrofes naturais, guerras, epidemias, etc. Bertaglia (2009), por sua vez, afirma que o investimento em estoques tem dois objetivos estratégicos principais: 1) Maximizar os recursos da empresa: a formação de estoques proporciona, em muitos casos, um melhor balanceamento das operações de uma organização, garantindo uma maior eficiência em suas operações, uma redução de custos de mão-de-obra e a utilização plena da capacidade instalada; 2) Fornecer um nível satisfatório de serviço ao cliente ou consumidor: uma forma de a organização assegurar o atendimento uniforme de seus clientes é através da criação de estoques considerando os limites desejáveis de abastecimento, garantindo, mesmo no caso de picos de demanda, o fornecimento contínuo de produtos e serviços aos seus clientes. 1.2 Uma visão dos problemas com estoques Ballou (1993) explica que, como tendência geral, os estoques têm crescido juntamente com as vendas ao longo dos anos, sendo que os bens não duráveis, como roupas e alimentos, representam um terço dos estoques totais nas empresas, ao passo que os bens duráveis, como automóveis e máquinas de lavar, representam os dois terços restantes. Isso se deve ao fato de que os estoques de bens duráveis apresentam oscilações maiores que os estoques de bens não duráveis, uma vez que sua compra pode ser adiada mais facilmente. Para Bertaglia (2009, p. 333), "a compreensão dos objetivos estratégicos da existência e do gerenciamento dos estoques é fundamental para se definir metas, funções, tipos de estoque e [...] como eles afetam as organizações em suas atividades [...]". De acordo com Ballou (2004), a previsão dos níveis de demanda ao longo do ciclo de um produto é fundamental à empresa como um todo, uma vez que propicia dados básicos para o planejamento e controle de diversas áreas, tais como a 20 logística, o marketing, a produção e as finanças. Martins (1999) define previsão como sendo “[...] um processo metodológico para a determinação de dados futuros baseado em modelos estatísticos, matemáticos ou econométricos ou ainda em modelos subjetivos apoiados em uma metodologia de trabalho clara e previamente definida”. 1.2.1 Tipos de demanda Para Ballou (1993), a divisão dos estoques em classes ou tipos facilita seu controle, e uma das melhores formas de se classificá-los é quanto à natureza da sua demanda, que pode ser permanente, sazonal, irregular, declinante ou derivada. O autor as define: Demanda permanente: ocorre com os produtos que possuem ciclos de vida muito longos, sem grandes picos ou vales de consumo ao longo do ano. Estoques de produtos com demanda permanente requerem ressuprimento contínuo, e seu controle é orientado para a previsão de demanda de itens, à determinação do momento de ressuprimento, e à definição do tamanho do lote de ressuprimento; Demanda sazonal: estoques mantidos para produtos altamente sazonais ou que apresentam altos picos de consumo dificilmente podem ser liquidados, a não ser à base de promoções e com descontos vantajosos. Nesta categoria temos, por exemplo, os enfeites natalinos, os itens de campanhas políticas e os ovos de páscoa; Demanda irregular: é aquela que apresenta um padrão irregular, e existe inclusive para produtos de demanda contínua. O controle de estoques para produtos com demanda irregular está vinculado à previsão precisa das vendas, principalmente quando essa flutuação está atrelada a tempos de ressuprimento demasiadamente longos ou inflexíveis; Demanda em declínio: há produtos cuja demanda finda em um momento previsível no futuro. O declínio desse tipo de demanda é gradual, possibilitando que seu estoque excedente seja diminuído aos poucos. Há produtos, no entanto, que apresentam um fim de demanda abrupto, mas planejado. Nesta categoria 21 encontram-se, por exemplos, os materiais militares, que possuem sua vida útil definida na concepção do projeto; Demanda derivada: ocorre quando o padrão de demanda de determinado produto deriva-se da demanda de outro produto. O estoque requerido para atender a uma demanda derivada é, também, derivado. Pode-se determinar com precisão quanto e quando devemos produzir certo bem através da demanda de outro bem. Por exemplo, podemos prever precisamente quanto se deve produzir de pneus dados à demanda de veículos zero quilômetro. 1.3 Características básicas da gestão de estoques Fitzsimmons (2004) diz que para que se possa projetar, programar e gerenciar um sistema de estoque, tem que saber as características de cada item estocado e conhecer suas variáveis, bem como os vários sistemas de estoque disponível. Bertaglia (2009) afirma que a flutuação nos níveis dos estoques de uma empresa impactam diretamente suas finanças, e propõe o uso de alguns indicadores de desempenho que visam auxiliar no monitoramento dos estoques, tais como o giro de estoque e a cobertura de estoque. "O giro de estoque corresponde ao número de vezes que o estoque é totalmente consumido durante um determinado período (normalmente um ano)" (BERTAGLIA, 2009, p. 333). Esse indicador é calculado com base na relação do volume vendido no ano dividido pelo capital médio investido, e é comumente utilizado pelas empresas para comparar seu desempenho ao de empresas similares. É dado pelas fórmulas: Vendas anuais ($) Giro de estoque = Vendas anuais (unid.) ou Estoque médio ($) Giro de Estoque = Estoque médio (unid.) 22 1.3.1 Restrições e custos relevantes de estoques Quando se fala sobre os custos que envolvem no estoque, não se deve levar em consideração apenas o custo da aquisição do material junto ao fornecedor, mas também, os custos relativos à sua logística, estocagem e também as perdas financeiras decorrentes à falta de itens em estoque, como demonstra FITZSIMMONS e FITZSIMMONS (2004, p. 346): O desempenho de um sistema de estoque é geralmente medido por seu custo médio anual. [...] incluem os custos de manutenção, de pedido, de falta de produtos e o custo de compras dos itens. [...] O custo de oportunidade associado com o capital investido no estoque é o maior componente do custo de manutenção. Existem outros componentes que afetam o custo do estoque como os custos com seguro e obsolescência. Outro custo que deve ser levado em consideração é o custo da variação cambial / taxas de importação existentes para os produtos importados. Importar vários itens em apenas um pedido, quando do mesmo fornecedor, faz com que se dilua o valor de algumas taxas aduaneiras fixas, que são cobradas por processos de importação. O quadro 1.1 detalha os principais custos do gerenciamento de estoque: 23 Custos do pedido Definição das especificações dos itens a serem comprados; Localização ou identificação de fornecedores potenciais e solicitação de preços; Avaliação de preços e seleção de fornecedores; Negociação de preços; Preparação das ordens de compra; Emissão ou transmissão das ordens de compra aos fornecedores externos; Acompanhamento para garantir que as ordens de compras foram recebidas pelos fornecedores. Custos de recebimento e inspeção Transporte, expedição e recebimento; Preparação e manuseio de registros de recibos e outros papéis; Exame das embalagens a fim de verificar danos visíveis; Desembalar os itens; Contagem ou pesagem de itens a fim de garantir que a quantidade correta tenha sido entregue; Coleta de amostras e encaminhamento para organismos de inspeção e teste; Inspeção e teste dos itens a fim de garantir que estejam em conformidade com as especificações de compras; Transferências dos itens para as áreas de armazenagem. Custo de manutenção Encargos financeiros associados aos estoques; Custo de oportunidade do capital associados aos itens, armazenagem e outros elementos do sistema de inventário; Taxas e seguro; Movimentação dos itens para dentro e fora da área de estocagem e manutenção dos registros das movimentações; Furto ou roubo; Fornecimento de sistemas de segurança para proteção dos estoques; Quebras, danos e deterioração; Obsolescência das peças e descarte de material com prazo de validade vencido; Depreciação; Espaço de armazenagem e instalações (normalmente, o dimensionamento é baseado no estoque máximo em vez do médio); Fornecimento de ambientes com temperatura, umidade, limpeza, etc., controlados; Gerenciamento (tarefas tais como supervisão do pessoal de estoques, quantificação periódica do inventário físico, verificação e correção de registros, etc.). Custo de manutenção Vendas e lucros perdidos; Insatisfação e má vontade do cliente: clientes perdidos; Penalidades por atraso na entrega ou por não entregar mercadorias; Expedição de pedidos para reabastecer estoques esgotados. Quadro 1.1 - Detalhamento dos principais custos do gerenciamento de estoque Fonte: FITZSIMMONS E FITZSIMMONS, 2005, p.345 24 1.4 Vantagem competitiva Turban, Rainer e Potter (2005, grifo nosso) definem vantagem competitiva como sendo ‘uma vantagem em relação aos concorrentes em alguma medida como custo, qualidade ou velocidade que leva ao controle de um mercado e lucros maiores que a média’. Segundo Faria (2005), para as empresas, “vantagem competitiva é o que faz com que a sua oferta seja a escolhida pelos seus clientes e clientes potenciais, dentre todas as ofertas disponíveis no seu mercado de atuação”. De acordo com Porter (1996, apud Loddi, 2006, p. 40) a vantagem competitiva: [...] surge fundamentalmente do valor que uma empresa consegue criar para seus compradores e que ultrapassa o custo de fabricação pela empresa. O valor é aquilo que os compradores estão dispostos a pagar, e o valor superior provém da oferta de preços mais baixos do que os da concorrência por benefícios equivalentes ou do fornecimento de benefícios singulares que mais do que compensam um preço mais alto. Existem dois tipos de vantagem competitiva: liderança de custo e diferenciação [...]. De acordo com Turban, Rainer e Potter (2005), a estrutura mais conhecida para se analisar a competitividade das organizações é o modelo de forças competitivas de Michael Porter, usado para o desenvolvimento de estratégias que aumentem as margens competitivas da organização e, também, para demonstrar como a Tecnologia da Informação pode auxiliar nesse processo. O modelo reconhece cinco forças principais que influenciam o posicionamento de uma empresa em um determinado setor: a ameaça de novos entrantes, o poder de negociação dos fornecedores, o poder de negociação dos clientes, a ameaça de substituição de produtos e serviços e a rivalidade entre as empresas existentes no setor. As empresas tentam continuamente desenvolver estratégias voltadas à manutenção de uma posição lucrativa e sustentável contra as cinco forças de Porter. Este autor, assim como outros, propôs algumas estratégias com a finalidade de 25 nortear as organizações na obtenção de vantagem competitiva. Turban, Rainer e Potter (2005) destacam doze dessas estratégias: 1) Estratégia de liderança de custo: estratégia baseada na criação de produtos ou serviços no menor custo do setor de atuação; 2) Estratégia de diferenciação: estratégia baseada na oferta de diferentes produtos, serviços ou recursos de produtos; 3) Estratégia de nicho: estratégia que envolve a seleção de um segmento de escopo estreito (nicho de mercado) e ser o melhor em qualidade, velocidade ou custo; 4) Estratégia de crescimento: estratégia baseada no aumento da fatia de mercado, na atração de novos clientes ou na venda de mais produtos; 5) Estratégia de inovação: estratégia baseada na introdução de novos produtos e serviços, na adição de recursos aos produtos ou serviços existentes, ou no desenvolvimento de novas formas de produzi-los; 6) Estratégia de aliança: estratégia que consiste no trabalho com parceiros de negócios em parcerias, alianças, empreendimentos conjuntos ou empresas virtuais, criando sinergia, permitindo que as empresas se concentrem em seus negócios de base e oferecendo oportunidades de crescimento; 7) Estratégia de eficácia operacional: estratégia que consiste em melhorar a maneira como os processos de negócios internos são executados, permitindo à organização realizar tarefas semelhantes melhor que suas concorrentes; 8) Estratégia de orientação ao cliente: estratégia que consiste na concentração de esforços visando à satisfação dos clientes; 9) Estratégia de tempo: estratégia que consiste em tratar o tempo como recurso, que deve ser gerenciado e usado em benefício da organização; 10) Estratégia de barreiras à entrada: estratégia que consiste na criação de barreiras à entrada de novos competidores, por exemplo, através de patentes ou serviços únicos; 11) Estratégia de fidelização de clientes ou fornecedores: estratégia que consiste em encorajar clientes ou fornecedores a fazerem negócios com a organização, ao invés de seus concorrentes; 26 12) Estratégia de aumento de custos de troca: estratégia que consistem em desencorajar que clientes ou fornecedores passem para a concorrência por motivos econômicos. 1.4.1 A inovação como vantagem competitiva Devido à grande competitividade em grande parte dos segmentos de mercado, as empresas buscam a todo o momento oferecer em seus produtos e serviços diferenciais que as coloquem em vantagem em relação à concorrência. Uma das maneiras mais eficientes para que se consiga essa vantagem ou diferenciação é por meio da inovação. Segundo Santos (2012), a cada dia novas tecnologias chegam ao mercado e as empresas em geral inovam seus produtos e serviços aplicando o que há de mais sofisticado para a satisfação plena de seus clientes. A vantagem competitiva na era do conhecimento é ainda mais importante do que na velha economia, pois, como se pode observar, a economia digital não mudou o negócio principal das organizações: as tecnologias de Internet tão e somente oferecem as ferramentas que podem aumentar o sucesso das organizações por meio de suas fontes tradicionais de vantagem competitiva. Ortuño (2007) lembra que a maioria das grandes empresas que se destacam no segmento que atuam, e resistem a épocas de crise, tem a inovação como prioridade. Segundo Pegrino (2010), apesar de ser a maneira mais comum, inovar não é necessariamente criar um novo produto ou serviço, é possível também inovar melhorando os produtos e serviços que já existem. Segundo Rikard (2008), a inovação, ao contrário da invenção, tem o caráter de atribuir valor a uma determinada invenção, tornando-a revolucionária e a deixando na memória das pessoas. 27 Peregrino (2010) define inovação como sendo o caminho que as empresas devem permanente percorrer para enfrentar os desafios do mercado e se manter jovens e competitivas. Brandão et al. (2006, p. 15) destaca a importância das inovações para as empresas: Inovações acrescentam valor a produtos, ajudando as empresas a sobreviver num cenário crescentemente competitivo. Elas têm utilidades múltiplas: dão acesso a novos mercados, aumentam lucros, geram emprego e renda, fortalecem marcas. Para Cavagnoli (2009), mesmo sendo importante, são poucas as empresas brasileiras que usam a inovação para se manterem competitivas. 1.4.2 A importância da Tecnologia da Informação Turban, Rainer e Potter (2005, p. 40) definem Tecnologia da Informação como “[...] a coleção de recursos de informação de uma organização, seus usuários e a gerência que os supervisiona; inclui a infraestrutura de TI e todos os outros sistemas de informação em uma organização”. Estes autores definem que, basicamente, os sistemas de informação são compostos por quatro componentes como apresentado no quadro 1.2: COMPONENTE DEFINIÇÃO Hardware Um conjunto de dispositivos (por exemplo, processador, monitor, teclado e impressora) que, juntos, aceitam dados e informações, os processam e os apresentam. Software Um conjunto dos programas que permitem que o hardware processe dados. Banco de dados Uma coleção de arquivos relacionados, tabelas, relações e assim por diante, que armazenam dados e associações entre eles. Rede O conjunto de conexão (com ou sem fio) que permite o compartilhamento de recursos por diferentes computadores. Quadro 1.2 – Componentes básicos de um sistema de informação Fonte: Adaptado de TURBAN, RAINER e POTTER, 2005, p.41 28 Dentro do processo de inovação com objetivo de fazer com que a empresa se torne cada vez mais competitiva, a Tecnologia da Informação é indispensável, conforme a declaração de Bertaglia (2009, p. 474): Hoje, essa tecnologia é parte integrante da empresa e quem não enxergar isso terá seu futuro extremamente comprometido. A tecnologia da Informação ajuda a transformar radicalmente as características da empresa, seja na produção, na distribuição ou no serviço ao cliente. Grande parte das organizações não percebe a importância de usá-la como elemento importante que dá suporte na luta pela competitividade. "Uma empresa que hoje não tenha pelo menos alguns recursos de TI para atender ao cliente e agilizar os processos perde competitividade [...]" (HABERKORN, 2009, p. 26). Porter (2004) define liderança no custo total, diferenciação e enfoque, como estratégias competitivas genéricas. A Tecnologia da Informação contribui diretamente com essas estratégias, pois segundo Ramos, Silva e Alvarenga (2009, p. 10) “a TI pode contribuir com redução de custos, ganhos de produtividade, prospecção de novos mercados, facilidade de relacionamento com clientes e fornecedores, conhecimento do mercado de atuação e da conjuntura econômica [...]”. Santos (2009) lembra que durante muito tempo a Tecnologia da Informação era vista apenas como um 'centro de custo', que não gerava retorno para a organização. Atualmente as empresas já enxergam a importância da tecnologia da informação como arma estratégica, porém, para Barbaceli (2009), "não é difícil encontrar departamentos de TI desconectados à realidade dos negócios da empresa. [...]". Para que a Tecnologia da Informação seja realmente um diferencial para a empresa, é necessário que o departamento esteja alinhado ao negócio da organização. "Antes de estabelecer uma estratégia para a Tecnologia de Informação, a empresa deve claramente identificar o papel dessa área no contexto organizacional [...]" (BERTAGLIA, 2009, p. 477). 29 1.5 TI aplicada à Gestão de Estoques Historicamente, muitas atividades do gerenciamento das cadeias de fornecimento eram feitas manualmente usando papéis, telefones e faxes, mas isso pode ser bastante ineficiente. Assim, desde a época em que os computadores começaram a ser utilizados nos negócios, as pessoas desejaram automatizar os processos ao longo da cadeia de fornecimento. (TURBAN, RAINER e POTTER, 2005, p. 301). “Um sistema de controle de estoque é um conjunto de regras e procedimentos que permitem responder às perguntas de grande importância, e tomar decisões sobre os estoques” (MOREIRA, 2004, p.270 apud CHAGAS, SOUZA e SIMÃO, p. 3). 1.5.1 MRP, MRP II e ERP Estas siglas começaram a ser usadas na década de 1960. O MRP 1( Material Requirement Planning), segundo Haberkorn (2009, p. 14), “[...] calculava tudo o que deve ser comprado e produzido”. Esses sistemas eram direcionados a grandes fábricas, que tinham uma grande linha de produtos, que por sua vez eram compostos por uma grande variedade de componentes e matérias primas. Martins e Laugeni (2006) explicam que o MRP surgiu da necessidade de se controlar a quantidade de matéria prima necessária para a produção dos produtos que eram oferecidos ao mercado, considerando a sua demanda. Segundo Correa, Gianesi e Caon (2007, p. 78) o MRP baseia-se na ideia de que: [...] se são conhecidos todos os componentes de determinado produto e os tempos de obtenção de cada um deles, podemos, com base na visão de futuro das necessidades de disponibilidade do produto em questão, calcular os momentos e as quantidades que devem ser obtidas, de cada um dos componentes para que não haja falta nem sobra de nenhum deles, no suprimento das necessidades dadas pela produção do referido produto. 1 MRP: Material Requirement Planning em português, Planejamento para Requisição de Materiais 30 Para a realização de seus cálculos, o MRP necessita de quatro tipos de entradas (VOLLMANN, BERRY E WHYBARK apud SOUZA, 2001): 1) Planejamento Mestre de Produção (MPS): Informações de ordens planejadas e programadas para cada item, contendo quantidades necessárias e datas das necessidades; 2) Situação de Inventário: Provê informação de inventário disponível; 3) Estrutura de Produto (Lista de Materiais): Componentes e quantidades necessárias para se produzir uma unidade; 4) Registros de Planejamento: tamanho de lote, lead time, fatores de perda e estoques de segurança. Além disso, o MRP utiliza parâmetros, que são: a) Política de lotes mínimos: indica a quantidade mínima de abertura de uma ordem, permitindo qualquer quantidade deste nível mínimo ou superior; b) Política de lotes máximos: indica a quantidade de lote máxima a ser aberta, não permitindo produções de quantidades acima do máximo definido; c)Política de períodos fixos: o sistema calcula todas as necessidades ao longo de períodos futuros, de duração definida, período a período, e concentra no início desses períodos os recebimentos planejados do total das necessidades calculadas; d) Estoques de Segurança: quantidade de estoque planejada para estar em inventário visando à proteção contra as flutuações de demanda e suprimentos; e) Lead Time: tempos de obtenção ou ressuprimento. É o tempo que decorre entre a liberação de uma ordem (de compra ou produção) e o material correspondente estar pronto e disponível para uso. O avanço da tecnologia relacionada aos computadores colaborou para que a ideia do MRP também sofresse mudanças e evoluísse. Em 1980 pode-se ver o surgimento de um novo conceito de sistema de informação, que foi chamado de MRP II 2 (Manufacturing Resources Planning). 2 MRPII: do inglês Manufacturing Resources Planning ou Planejamento de Recursos para Produção. 31 Apesar de utilizarem a mesma sigla, o MRP e o MRPII eram sistemas com funcionalidades diferentes, já que “de modo geral, o MRP I dizia apenas ‘produza isso, compre aquilo’. Já o MRP II indicava como produzir [...]” (HABERKORN, 2009, p.14). Para controlar o processo de produção, o MRP II consequentemente passou a considerar e controlar outras variáveis, tornando os seus cálculos mais complexos do que os cálculos efetuados pelo MRP I. O sistema MRP II “[...] não calculava apenas as necessidades de materiais, mas também as necessidades de outros recursos do processo de manufatura” (CORREA, GIANESI E CAON, 2007, p.133), “Além dos materiais que já eram tratados, passou-se a considerar também outros insumos, como mão de obra, equipamentos, espaços disponíveis para estocagem, instalações, entre outros [...]” (MARTINS e LAUGENI, 2006, p. 354). Existem fatores importantes que devem ser respeitados para que o MRP II funcione de maneira eficaz. Por se tratar de um sistema que tem como objetivo integrar os processos da empresa é necessário que as informações sejam compartilhadas entre todos envolvidos no uso do sistema, unificando a base de dados. Outro fator importante é a exatidão dos dados que são inseridos pelos usuários, considerando que as informações geradas pelo sistema e que influenciarão no processo de produção da empresa, dependem diretamente desses dados. Ou seja, o bom funcionamento de um sistema MRP II depende do comprometimento das pessoas envolvidas (CORRÊA, GIANESI E CAON, 2007). A figura 1.1 demonstra a abrangência do MRP I e do MRP II: 32 Figura 1.1 - Abrangência do MRP e do MRP II Fonte: CORRÊA, GIANESI e CAON, 2007, p.134 Em 1990 surge o conceito de ERP (Enterprise Resources Planning)3, ainda mais abrangente que o MRP II, cujo objetivo, na visão de Slake, Chambers e Johnston (2009, p. 438) era “[...] integrar a gestão de diferentes funções do negócio como um todo, de modo a aprimorar o desempenho de todos os processos interrelacionados do negócio”. Correa, Gianesi e Caon (2007, p. 390) afirmam que “um sistema dito ERP tem a pretensão de suportar todas as necessidades de informação para a tomada de decisão gerencial de um empreendimento como um todo”. O sistema ERP assim como MRP II funciona com uma única base de dados, porém além das informações do setor de manufatura, o ERP concentra informações de todas outras áreas da empresa. “O ERP é um sistema que facilita o fluxo de informações dentro de uma empresa, integrando as diferentes funções, quais sejam: manufatura, logística, 3 ERP: do inglês Entreprise Resources Planning ou Planejamento de Recursos Empresariais 33 finanças, recursos humanos e engenharia, entre outras” (MARTINS e LAUGENI, 2006, p. 388). Na figura 1.2 é mostrada a visão geral de um ERP: Figura 1.2 - Visão geral de um ERP Fonte: MARTINS e LAUGENI, 2006, p.388 “O ERP apresentou uma trajetória de constante evolução e chegou a um estágio em que resolveu praticamente todos os processos operacionais dentro da empresa” (HABERKORN, 2009, p. 27). Durante esse processo de evolução os sistemas ERP adquiriram novas funcionalidades, uma delas é o SCM (Supply Chain Management) – Gerenciamento da cadeia de suprimentos, que está diretamente ligada à gestão de estoques. “Cadeia de suprimentos é o processo da movimentação de bens desde o pedido do cliente através dos estágios de aquisição de matéria prima, produção até a distribuição dos bens para os clientes” (ROCKFORD CONSULTING GROUP – RCG (2001) apud BRUSTELLO E SALGADO, 2006, p. 1). 34 Segundo Martins e Laugeni (2006, p. 170): [...] a gestão da cadeia de abastecimento ou Supply Chain Management diz respeito às práticas de gestão que são necessárias para que todas as empresas agreguem valor ao cliente desde a fabricação dos materiais, passando pela produção dos bens e serviços, a distribuição e a entrega final ao cliente. Martins e Laugeni (2006) ainda afirmam que os sistemas ERP de grande porte, inclusive sistemas brasileiros, têm funcionalidades para a gestão da cadeia de suprimentos, e que existem sistemas que são desenvolvidos exclusivamente com esta finalidade. 35 2 INTRODUÇÃO À ENGENHARIA DE SOFTWARE Engenharia de Software é uma disciplina que estuda os aspectos de produção de software, desde sua especificação, projeto e evolução de programas, sendo este estudo o diferencial de um software amador para um software profissional, como define Sommerville (2011). O autor afirma, ainda, que software não é apenas uma palavra para programas de computador, mas engloba também, além do programa em si, toda a sua documentação associada e, dados de configuração para que o programa opere corretamente. Schach (2009, p. 4) complementa a definição de Engenharia de Software da seguinte maneira: [...] é uma disciplina cujo objetivo é produzir software isento de falhas, entregue dentro de prazo e orçamento previstos, e que atenda às necessidades do cliente. Além disso, o software deve ser fácil de ser modificado quando as necessidades do usuário mudarem. 2.1 Processos de Desenvolvimento de Software Processo de desenvolvimento de software é definido por Pfleeger (2004) como uma série de etapas a serem seguidos que envolvem atividades, restrições e recursos para alcançar uma saída desejada. Entre estes recursos, este autor descreve como um conjunto de ferramentas e técnicas para o desenvolvimento de um software, conceito utilizado também por Sommerville (2011). Sommerville (2011) define alguns processos para o desenvolvimento de softwares. Os quatro mais importantes são: 1) Especificação de software: funcionalidades e restrições do software; 2) Projeto e implantação de software: Produção do software deve atender às especificações; 3) Validação de software: validação do software pelo cliente; 4) Evolução de software: o software deve evoluir conforme necessidade de mudança do cliente. 36 Pfleeger (2004) define que o desenvolvimento de software envolve vários estágios ou processos diferentes, entre eles: análise e definição de requisitos, projeto do sistema, projeto do programa, programação em si, teste do software, implantação do sistema e a manutenção. O autor ainda acrescenta que estes processos podem ser organizados como um modelo. Existem vários modelos de processo de desenvolvimento de software que podem ser utilizados conforme a necessidade e que visam tornar o desenvolvimento de software mais eficiente. Sommerville (2011, p. 19) explica que “[...] um modelo de processo de software é uma representação simplificada de um processo de software”. O autor aborda três modelos diferentes de processo e os define da seguinte maneira: 1) O modelo em cascata: considera as atividades fundamentais do processo de especificação, desenvolvimento, validação e evolução, representando cada uma delas como fases independentes, como ilustra a figura 2.1: Figura 2.1 – Modelo em Cascata Fonte: SOMMERVILLE, 2011, p.20 2) Desenvolvimento Incremental: intercala cada processo de desenvolvimento. São criadas várias versões incrementais, sendo adicionadas a cada versão novas funcionalidades em relação à versão anterior. A figura 2.2 ilustra o processo incremental de desenvolvimento: 37 Figura 2.2 – Modelo Incremental Fonte: SOMMERVILLE, 2011, p.22 3) Engenharia de software orientada a reuso: quando existe uma quantidade significativa de componentes reusáveis e que vão sendo integrados ao sistema conforme as fases de seu desenvolvimento. A figura 2.3 ilustra este modelo: Figura 2.3 – Engenharia de software orientada a reuso Fonte: SOMMERVILLE, 2011, p. 23 2.2 Rational Unified Process (RUP) Martins (2010) define o RUP4 como uma metodologia para gerenciar projetos de software utilizando-se do UML5 como uma ferramenta para especificação de sistemas. Sommerville (2011) complementa que o RUP é um modelo moderno e genérico de processo de desenvolvimento de software e que está dividido em fases, sendo estas: a concepção, elaboração, construção e transição, dividindo as atividades em requisitos, análise, projeto, entre outras. 4 RUP (Rational Unified Process): Processo Unificado de Desenvolvimento de software criado pela Rational Inc.. 5 UML (Unified Modeling Language): Processo unificado de modelagem de software representada por diagramas. 38 Martins (2010) aponta as seguintes ferramentas e recursos do RUP: 1) Desenvolvimento iterativo: permite gerenciar melhor os requisitos, facilitando o tratamento das descobertas constantes ocorridas durante o projeto; 2) Gerenciamento de requisitos: gerenciar os requisitos que além de essenciais para o projeto, podem mudar durante a vida do projeto por serem dinâmicos e mutáveis por diversos motivos como, por exemplo, a mudanças do problema, da ideia do usuário, das técnicas e do mercado; 3) Arquitetura baseada em componentes: estruturar a arquitetura do sistema em componentes, viabilizando a reutilização e a personalização de componentes; 4) Organização da especificação em “modelos”: utilização de modelos gráficos baseados na UML para apresentação geral do software; 5) Verificação constante da qualidade: garantir que o software durante seu ciclo de vida funcione conforme o esperado em relação as funcionalidades, confiabilidade e performance; 6) Controle de mudanças: controle das versões criadas e modificadas durante o processo de desenvolvimento do software. Além dessas ferramentas e recursos, o autor adiciona que o RUP organiza o sistema com estrutura estática ou dinâmica, além de trabalhar com processos focados na arquitetura e nos casos de uso. 2.2.1 Fases do RUP Martines (2010) explica as quatro fases do RUP: 1) Fase de Concepção / Iniciação: abrange tarefas de comunicação com o cliente e o planejamento. É feito um plano de projeto avaliando os possíveis riscos, as estimativas de custo e prazos, estabelecendo as prioridades, levantamento dos requisitos do sistema e preliminarmente fazendo suas análises. Assim, haverá uma anuência das partes interessadas na definição do escopo do projeto, onde são examinados os objetivos para se decidir sobre a continuidade do desenvolvimento; 39 2) Fase de Elaboração: abrange a modelagem do modelo genérico do processo. O objetivo desta fase é analisar de forma mais detalhada a análise do domínio do problema, revisando os riscos que o projeto pode sofrer e a arquitetura do projeto começa a ter sua forma básica. Dúvidas sobre a confiabilidade do projeto e se os custos serão admissíveis são esclarecidas durante esta etapa; 3) Fase de Construção: desenvolve ou adquire os componentes de software. O principal objetivo desta fase é a construção do sistema de software, com foco no desenvolvimento de componentes e outros recursos do sistema. Durante esta etapa, a grande parte da codificação do software é desenvolvida; 4) Fase de Transição: abrange a entrega do software ao usuário e a fase de testes. O objetivo desta fase é a disponibilização do sistema, tornando-o funcional e compreensível pelo usuário final. As atividades desta fase incluem o treinamento dos usuários finais e a realização de testes da versão beta do sistema visando garantir que o mesmo possua o nível adequado de qualidade e que o sistema atenda os requisitos mínimos desejados. Maia (2009) destaca que em cada uma dessas fases é realizada uma série de atividades agrupadas por disciplinas e que a intensidade dessas atividades variam de acordo com a fase em que esta é realizada. O autor descreve as dez disciplinas: Modelagem de Negócios, Requisitos, Análise e Design, Implementação, Teste, Implantação, Ambiente, Gerenciamento de Projeto, Gerenciamento de Configuração e Mudança. Cada disciplina mostra todas as atividades que você deve realizar para produzir um determinado conjunto de artefatos. Essas disciplinas são descritas em nível geral — um resumo de todos os papéis, atividades e artefatos envolvidos. É uma maneira de demonstrar em um nível mais detalhado como ocorre a colaboração entre papéis e de que forma eles usam e produzem artefatos. Os passos nesse nível detalhado são chamados de "detalhamentos do fluxo de trabalho". 2.3 Requisitos de Sistema Para iniciar o processo de desenvolvimento de qualquer software, é imprescindível que o programador conheça as reais necessidades do seu cliente usuário final, como definido por Pfleeger (2007, p. 111), que afirma ser necessário “[...] compreender o que os clientes e usuários esperam que o sistema realize”. 40 Sommerville (2011) complementa esta definição afirmando que os requisitos, além de descrever o que o sistema deve fazer, ajudam a definir os serviços que ele irá oferecer e as restrições a seu funcionamento, e ainda utiliza dois termos distintos para a definição de requisitos: 1) Requisitos de usuário: são declarações utilizando uma linguagem natural com diagramas demonstrando quais serviços o sistema deverá fornecer aos seus usuários e quais são suas restrições de operação; 2) Requisitos de sistema: são descrições detalhadas das suas funções, serviços e as restrições de operação do sistema de software. A documentação dos requisitos de sistema deve definir exatamente o que o sistema deverá ter. A partir desta definição, existem dois tipos de requisitos básicos que um sistema necessita, sendo eles os Requisitos Funcionais e os Requisitos Não Funcionais. Pfleefer (2007) define requisitos funcionais como uma interação entre o sistema e seu ambiente. Sommerville (2011) complementa esta definição explicando que os requisitos funcionais são as declarações do que o sistema deverá fornecer, como deverá reagir com as entradas específicas e como deverá se comportar em cada situação, além de poder explicitar o que o sistema não deve fazer. Os requisitos não funcionais são definidos por Sommerville (2011) como requisitos que demonstram as restrições aos serviços ou funções que o sistema oferece, como por exemplo, restrições impostas por normas e no processo de desenvolvimento, tempos de execução do sistema e plataforma de uso. O autor ainda complementa dizendo que estes requisitos, diferentemente dos requisitos funcionais, muitas vezes se aplicam ao sistema como um todo. A figura 2.4 mostra os tipos de requisitos não funcionais: 41 Requisitos não funcionais Requisitos de usabilidade Requisitos de produtos Requisitos de eficiencia Requisitos externos Requisitos de confiança Requisitos reguladores Requisitos de proteção Requisitos éticos Requisitos organizacio nais Requisitos legais Requisitos contábeis Requisitos de segurança/ proteção Requisitos de desempenho Requisitos de espaço Requisitos ambientais Requisitos operacionais Requisitos de desenvolvimento Figura 2.4 – Tipos de Requisitos não funcionais Fonte: SOMMERVILLE, 2011, p.61 Segundo Pfleefer (2007), por ser um passo importante para o desenvolvimento do sistema, os requisitos devem ser discutidos entre o programador e o usuário para que ambos concordem e não haja dúvidas no momento do desenvolvimento ou expectativas falsas pelo usuário no momento da entrega. Requisitos fazem parte do sistema, sendo uma característica dele ou a descrição do que ele pode realizar. Sommerville (2011) corrobora esta afirmação complementando que as especificações de requisitos devem ser claras, inequívocas e de fácil compreensão, completas e consistentes, evitando diferentes interpretações tanto pelo cliente quanto pelo grupo de desenvolvedores que trabalharão no desenvolvimento do software. Quando especificados os requisitos, dois tipos de documentos são criados, sendo um deles de modo mais geral, sem muitos termos técnicos, porém, de uma maneira que o cliente ou usuário possam ler e compreender os requisitos elicitados; e um mais técnico, a ser utilizado pelos desenvolvedores do sistema, onde será descrito minuciosamente como cada requisito deverá ser trabalhado. A figura 2.5 demonstra uma visão em espiral do processo de engenharia de requisitos: 42 Figura 2.5 – Uma visão em espiral do processo de engenharia de requisitos Fonte: SOMMERVILLE, 2011, p.70 2.4 Projeto e implementação Sommerville (2011) define o projeto e a implementação de software como uma etapa do processo onde um sistema de software executável é desenvolvido. Para pequenos sistemas esta etapa é a engenharia de software; para grandes sistemas, o projeto e a implementação do software é apenas uma parte de um conjunto de processos envolvidos na engenharia de software. Sommerville (2011, p. 124) descreve que “[...] o projeto de software é uma atividade criativa em que você identifica os componentes de software e seus relacionamentos com base nos requisitos do cliente”. Pfleefer (2007) define que para que a implementação do software flua de maneira organizada e que todos os envolvidos nessa etapa entendam o que está sendo desenvolvido, é necessário que todos conheçam os procedimentos e padrões da organização antes de começarem a escrever o código, pois cada empresa possui um padrão diferente em relação ao estilo de codificação, ao formato e à 43 nomenclatura de dados e aos padrões de conteúdo que permitem a interpretação e o completo entendimento por qualquer membro da equipe de desenvolvimento. Sommerville (2011) define que, por ser uma atividade criativa, o projeto não é um processo sequencial, pois necessita de ideias, propondo soluções e refinando-as conforme as informações ficam disponíveis, podendo ser necessário voltar atrás no desenvolvimento e adaptá-las para a nova necessidade. Baseando-se em sistemas orientados a objetos, que são compostos de objetos interativos que mantém seu próprio estado local e oferecem operações neste estado, facilitando uma possível mudança no sistema por se tratarem de objetos ou entidades autônomas, Sommerville (2011) indica a utilização da UML como metodologia para desenvolvimento de software, por se tratar de uma metodologia voltada à representação gráfica de todo o processo de desenvolvimento, permitindo que profissionais de software se comuniquem entre si de forma mais rápida e precisa do que por formas verbais. Este conceito também é defendido por Schach (2009, grifo nosso) que afirma que uma imagem vale mais que mil palavras. Sommerville (2011) apresenta cinco ações a serem tomadas para o desenvolvimento de um projeto de sistema, desde a sua contextualização até o projeto detalhado orientado a objetos. São eles: 1) Compreender e definir o contexto e as interações externas com o sistema: compreender os relacionamentos entre o software que está sendo projetado e seu ambiente externo bem como estabelecer os limites do sistema. Pode ser feito utilizando-se um caso de uso como demonstra os exemplos das figuras 2.6 e 2.7. Para cada uma das ações definidas no caso de uso, o autor usa uma descrição de caso de uso para definir claramente as informações que são trocadas: 44 Figura 2.6 – Sistema de contexto para estação meteorológica Fonte: SOMMERVILLE, 2011, p.126 Figura 2.7 – Caso de uso estação meteorológica Fonte: SOMMERVILLE, 2011, p.127 2) Projetar a arquitetura do sistema: após definidas as interações do sistema de software com o ambiente do sistema, utiliza-se estas informações para projetar a arquitetura do sistema. Devem-se identificar os principais componentes do 45 sistema e suas interações e organizá-los utilizando um padrão de arquitetura, como um modelo em camadas; 3) Identificar os principais objetos do sistema: define que, utilizando-se das descrições dos casos de uso, é possível identificar objetos e operações do sistema. A partir destas informações, é possível identificar as classes de objetos do sistema. Podem ser coletadas informações também à partir de documentos de requisitos, conversas com usuários, ou à partir de sistemas pré-existentes. A figura 2.8 exemplifica os objetos e suas classes: Figura 2.8 – Objetos da estação meteorológica Fonte: SOMMERVILLE, 2011, p.129 4) Desenvolver modelos de projeto: consiste em mostrar os objetos ou classes de objetos em um sistema, bem como suas associações e relacionamentos. Esses modelos são a ponte entre os requisitos do sistema e a sua implementação. Precisam ser abstratos para que detalhes desnecessários não escondam os relacionamentos entre eles e os requisitos do sistema, porém devem incluir detalhes suficientes para os programadores possam tomar decisões de implementação. Sommerville (2011) ainda define alguns tipos de modelos de projeto, tais como os estruturais, os dinâmicos, os de subsistema, os de sequência e os de máquina de estado. A figura 2.9 demonstra um exemplo de diagrama de estado: 46 Figura 2.9 – Diagrama de estado da estação meteorológica Fonte: SOMMERVILLE, 2011, p.132 5) Especificar interfaces: parte importante para qualquer processo de projeto, pois especifica as interfaces entre os componentes do projeto. Especificamse as interfaces de forma que os objetos e os subsistemas possam ser projetados em paralelo. Logo após uma interface ter sido especificada, os desenvolvedores dos outros objetos podem supor que ela será implementada. Podem ser especificadas usando-se a mesma notação de um diagrama de classe, porém não existirá a seção de atributos e o estereótipo <<interface>> deve ser incluído na parte do nome. A figura 2.10 exemplifica a especificação de duas interfaces: Figura 2.10 – Interfaces da estação meteorológica Fonte: SOMMERVILLE, 2011, p.133 Schach (2009, p. 481) conclui a ideia de Sommerville (2011) afirmando que “o objetivo do fluxo de trabalho de implementação é o de implementar o produto de software desejado na linguagem de programação escolhida [...]”. 47 2.5 Testes de software Martins (2010) afirma que as correções de problemas de software podem ser até mil vezes mais caras para realizar após a implantação do sistema do que durante seu processo de desenvolvimento, sendo de suma importância garantir a qualidade durante todo o ciclo de vida do projeto. Schach (2009) cita que uma série de tipos diferentes de testes tem de ser realizados durante o processo de implementação de um sistema de software, que incluem testes individuais em cada módulo desenvolvido, de integração destes módulos, do produto final e o de aceitação por parte dos usuários do sistema. Sommerville (2011) destaca dois objetivos distintos do processo de teste de software: 1) Demonstrar ao desenvolvedor e ao cliente que o software atende aos requisitos; 2) Descobrir situações em que o software se comporta de maneira incorreta, indesejável ou diversa da especificada, como, por exemplo, processamentos incorretos e corrupção de dados. Duas definições importantes devem ser consideradas (SOMMERVILLE, 2011 apud BOEHM, 1979, p. 145, grifo nosso): 1) Validação: estar construindo o produto certo; 2) Verificação: estar construindo o produto da maneira correta. Martins (2010) define diversos tipos de testes com finalidades distintas que avaliam a qualidade do sistema, divididos em três diferentes dimensões: 1) Qualidade: é testada a confiabilidade (resistência às falhas de execução), funcionalidade (onde se devem executar todos os casos de uso apresentando o comportamento esperado) e seu desempenho (executar e responder no tempo esperado em ambiente de uso real); 48 2) Estágios de teste: é executado teste de unidade (teste em cada um dos módulos, conforme estes são desenvolvidos), teste de integração (se todos os módulos desenvolvidos foram integrados de forma completa e corretos), teste de sistema (o sistema como um todo) e o teste de aceitação (onde o sistema completo é testado pelo usuário final para fins de aceitação ou homologação). 3) Tipos de teste: onde diversos tipos de testes são executados, cada um com um objetivo singular para avaliar uma característica especifica do sistema: a. Teste de benchmark: desempenho do elemento com os requisitos deste especificados; b. Teste de configuração: aceitação do elemento testado quanto a configuração de hardware e software; c. Teste de funcionamento: funcionamento correto do elemento testado como documentado nos casos de uso; d. Teste de instalação: se o elemento testado pode ser instalado em diferentes plataformas e ambientes sem apresentar problemas; e. Teste de integridade: verificar a confiabilidade, robustez e resistência a falhas do elemento testado; f. Teste de carga: verificar se o elemento mantem o funcionamento desejado mesmo quando varia a quantidade de transações, usuários e outros elementos. Martins (2010) ainda conclui que todos os testes devem ser projetados por um profissional qualificado, que será responsável por planejar, projetar e avaliar os testes, bem como os procedimentos de como estes testes devem ser executados pelo testador, que por sua vez irá executar os testes e avaliar os resultados, recuperar os erros e registrar o histórico de solicitações de correção decorrentes das falhas encontradas. 2.6 Implantação Martins (2010) define que o objetivo do processo de implantação é disponibilizar o sistema para os usuários finais. Este processo inclui o teste do sistema no ambiente de produção, empacotamento do software para sua distribuição, a sua distribuição e instalação, o treinamento dos usuários e da equipe 49 comercial e a migração de dados do sistema antigo para o novo sistema, caso o usuário final o possua. Este autor afirma, ainda, que o pico das atividades de implantação ocorre na fase de transição, onde o principal objetivo é a implantação do sistema e, para facilitar o trabalho da equipe de implantação, o usuário deve ser envolvido no processo desde o início, quando o sistema ainda está em sua versão beta. São definidos também pelo autor os profissionais que devem trabalhar nesta etapa de implantação: Gerente de Implantação; Gerente de Projeto; Escritor Técnico; Testador; Desenvolvedor. Martins (2010) enumera e define as seis atividades executadas no processo de implantação: 1) Planejar a implantação: definir a lista dos elementos a serem entregues e garantir que o cliente esteja comprometido e ciente com as atividades de implantação; 2) Desenvolver material de suporte: material de treinamento, suporte, ferramentas de instalação, manuais de uso e operação do sistema, entre outros; 3) Criar versão: empacotar o sistema e verificar se todos os artefatos necessários estão contidos nele; 4) Versão beta: distribuir uma versão beta6 para os usuários para que possam avaliar seu funcionamento junto ao sistema e a execução da instalação; 5) Testar o sistema no ambiente do cliente: instalar o sistema no ambiente de produção para que o usuário faça os testes necessários, para sua aceitação; 6) Prover acesso ao site para download: caso o software seja disponibilizado em algum tipo de portal para o usuário ou website. 6 BETA: versão de avaliação de programas 50 2.7 Manutenção Pós-entrega Pfleeger (2004) define a manutenção pós-entrega como sendo qualquer trabalho efetuado para modificar o sistema, logo após ele entrar em operação. O autor adiciona ainda que o software, diferente do hardware, não sofre degradação com o tempo nem requer manutenção periódica, mas sim, adaptações para mudanças de um sistema operacional ou tempo de execução relacionados a novos parâmetros de processadores e acesso a discos, bem como adaptações a novas necessidades especificas dos usuários. Sommerville (2011) define três diferentes tipos de manutenção de software: 1) Correção de defeitos: correção em falhas na codificação que podem estar relacionados ou não a erros do projeto; 2) Adaptação ambiental: quando existem alterações de hardware, sistema operacional ou algum software de apoio, e o sistema deve ser adaptado; 3) Adição de funcionalidade: quando existem mudanças nos requisitos de sistema pelo usuário ou novas regras de negócio organizacionais. Quanto à adição de funcionalidade, o autor destaca que adicionar funcionalidades depois que um sistema está em operação é muito mais caro e complicado do que durante o seu desenvolvimento devido a várias razões como estabilidade da equipe, que pode ter sido alterada desde o período de desenvolvimento até o momento da manutenção; más práticas de desenvolvimento, onde por motivos como o não fechamento de um contrato de manutenção com a mesma empresa que desenvolveu o sistema, não estimula a equipe de desenvolvimento a fazer um código manipulável e de fácil entendimento; falta de qualificação de pessoal, onde a equipe, além de inexperiente, pode não estar familiarizada com o domínio do sistema; e também a idade do programa e estrutura, onde, com o tempo, devido a várias alterações já feitas no programa ou utilização de técnicas já obsoletas, cria-se uma dificuldade no entendimento do código. 51 2.8 UML – Unified Modeling Language Guedes (2009) define UML (Unified Modeling Language ou Linguagem de Modelagem Unificada) como uma linguagem visual utilizada na modelação de software que se baseia no paradigma de orientação a objetos. Martins (2010) complementa afirmando que sua utilização serve para visualizar, especificar, construir e documentar os elementos de um sistema baseado em software. Tanto Guedes (2009) quanto Martins (2010) afirmam que a UML não é uma linguagem de programação, mas sim, uma linguagem de modelagem cujo objetivo é auxiliar a engenharia de software a definir as características do sistema de software a ser desenvolvido, facilitando a visualização de suas características pelo programador. “Grandes projetos não podem ser modelados de cabeça, nem mesmo a maioria dos pequenos projetos pode sê-lo, exceto, talvez, aqueles extremamente simples” (GUEDES, 2009, p. 20). O autor esclarece ainda que devido ao fato de o software ser dinâmico e costumar ter a propriedade de ser ampliado com o passar do tempo, sua complexidade aumenta e, para que se mantenha sua facilidade e rapidez de manutenção e correção, é importante que o sistema de informação tenha uma documentação extremamente detalhada, evitando produzir novos erros no momento da correção dos antigos. Guedes (2009) cita que a UML na fase do projeto ajuda a trabalhar com o domínio da solução, estabelecendo como o sistema realizará o que foi determinado na fase de análise, criando a solução para o problema identificado, estabelecendo diretrizes de como as funcionalidades irão realizar o que foi solicitado. Neste momento é que deve ser selecionada a linguagem de programação a ser utilizada, o sistema de gerenciamento de banco de dados a ser implementado, suas interfaces e a distribuição física na empresa, definindo que tipo de hardware necessário para a correta implantação e funcionamento. Martins (2010) especifica a estrutura básica da UML considerando três blocos: 52 1) Elementos básicos: são elementos pertinentes a estrutura, comportamento, agrupamento e anotações. A estrutura representa as partes do sistema, que podem ser conceituais ou físicas (classes, interfaces, casos de uso, componentes e nós). O comportamento está relacionado às partes dinâmicas da UML, representando o comportamento no tempo e espaço. O agrupamento permite juntar todas as informações citadas acima em um só contexto. E as anotações são as contextualizações que descrevem, clareiam e elucidam os conceitos em um modelo; 2) Relacionamentos: são as associações dos elementos básicos, podendo ser de quatro tipos diferentes: dependência, onde acontece o relacionamento semântico entre dois elementos, sendo que a alteração de um, afeta diretamente o outro; a associação, onde o relacionamento estrutural entre dois elementos representa a ligação cardinal entre as partes (por exemplo, um relacionamento “1–n”); a generalização, onde o relacionamento permite demonstrar a abstração de classes ou herança; a agregação, onde acontece uma associação, porém com maior dependência entre os elementos, pois um não existe sem o outro; 3) Diagramas: são os agrupamentos dos elementos básicos e dos relacionamentos, onde é possível construir diversas visões do sistema. Existem vários tipos de diagramas, dentre os quais os de classes, de objetos, de casos de uso, de interação, de sequência, de estado, de atividades, de componentes e de Deployment. 53 3 O PROJETO DE SOFTWARE Esse capítulo introduz a empresa Faro Technologies do Brasil Ltda. Em seguida é apresentado o resultado do processo de desenvolvimento do software, sendo o RUP a metodologia de Gerenciamento de Projeto adotada. Ressalta-se que a fase de Transição ainda não aconteceu na empresa, logo não foi documentada. 3.1 A Empresa A empresa FARO Technologies, Inc. com sede na cidade de Lake Mary, no estado da Flórida – EUA atua no mercado de equipamentos de alta tecnologia direcionados às áreas de controle dimensional (metrologia e controle de qualidade) e desenvolvimento de dispositivos de aquisição de imagens em três dimensões. Possui fábricas nos EUA, Alemanha e em Singapura, além de estruturas de serviços em vários outros países da Europa e, desde o início de 2011, no Brasil. No Brasil, a FARO Technologies executa serviços de manutenção e calibração dos equipamentos da sua marca para os clientes nacionais além do suporte a seus clientes por telefone e visitas in loco. Ainda não possuem fabricação dos equipamentos em nosso país. Por se tratar de uma empresa completamente focada em manutenção dos equipamentos, a assistência técnica utiliza-se de peças de reposição para uso diário e, atualmente, possui um controle desse estoque de peças manual e impreciso. Após a análise deste processo, foi verificada a necessidade do controle acurado e informatizado destas para que não falte nenhum item para manutenção, o que gera atraso na devolução dos equipamentos aos seus clientes e automaticamente, a insatisfação por parte deles, pois os mesmos necessitam desses equipamentos para liberação de produção nas suas empresas. Todas as peças utilizadas nas manutenções dos seus equipamentos aqui no Brasil precisam ser importadas na sua totalidade da sede dos EUA. 54 3.2 Fase de Concepção e Elaboração As fases de concepção e elaboração aconteceram em períodos distintos, porém sintetizadas conforme descrito a seguir. 3.2.1 Modelagem de negócio a) Visão do negócio: Durante o a análise do processo de estoque da empresa FARO Technologies do Brasil Ltda., foi verificado a inexistência de um sistema de TI que fizesse o controle e administração do inventário de peças, processo que era executado visualmente e com auxilio de planilhas eletrônicas, tornando assim, um controle ineficiente e impreciso. Neste momento, foi proposta a criação de um sistema dedicado e customizado para esta atividade, que tornou-se o escopo deste trabalho de pesquisa e desenvolvimento. b) Caso de Uso de Negócio: O diagrama de caso de uso a seguir demonstra o processo ideal para o gerenciamento do estoque da empresa: Manter Cadastro de Usuários Manter Estoque Manter Cadastro de ítens Manter Registro de Entrada de Peças Manter Registro de Saída de Peças Gerente Gerar Relatórios Manter Cadastro de Fornecedor Manter Cadastro de Clientes Manter Cadastro de Tipo de Utilização Figura 3.1 Diagrama de Casos de Uso Fonte: autoria própria Técnico 55 c) Descrição funcional de casos de uso: Os quadros 3.1 até o 3.9 demonstram as descrições funcionais dos casos de uso apontados no item ‘b’: Nome do Caso de Uso Manter Cadastro de Usuário Caso de Uso Geral Ator Principal Gerente Atores Secundários Resumo Descreve as etapas necessárias para cadastro de novos usuários no sistema Pré-Condições O gerente deverá administrador ter privilégios de Pós-Condições Ações do Autor Ações do Sistema 1. Selecionar a opção para cadastro de usuário 2. Carregar a tela de cadastro de usuário 3. Entrar com as informações do usuário 4. Validar os dados entrados 5. Gravar os dados no sistema Quadro 3.1 – Descrição de Caso de Uso “Manter Cadastro de Usuário” Fonte: Autoria própria Nome do Caso de Uso Manter Estoque Caso de Uso Geral Ator Principal Gerente Atores Secundários Resumo Descreve as etapas necessárias para gestão dos itens em estoque Pré-Condições Itens devem estar cadastrados anteriormente no sistema Pós-Condições Ações do Autor Ações do Sistema 1. Acessa a tela de manutenção de itens e seleciona item desejado 2. Carregar na tela as informações sobre o item selecionado 3. Se necessário, alterar, inserir ou excluir as informações sobre o item. 4. Se necessário, salvar as alterações. Quadro 3.2 – Descrição de Caso de Uso “Manter Estoque” Fonte: Autoria própria 56 Nome do Caso de Uso Manter Cadastro de Itens Caso de Uso Geral Ator Principal Gerente Atores Secundários Descreve as etapas necessárias manter o cadastro dos itens do estoque Resumo Pré-Condições Pós-Condições Ações do Autor Ações do Sistema 1. Informar o código do item 2. Consultar o código do item 3. Se já houver este item cadastrado com este código informado, apresentar seus dados 4. Se necessário, alterar, inserir ou excluir os dados do item. 5. Se necessário, salvar as alterações Quadro 3.3 – Descrição de Caso de Uso “Manter Cadastro de Itens” Fonte: Autoria própria Nome do Caso de Uso Manter Registro de Entrada de Peças Caso de Uso Geral Ator Principal Gerente Atores Secundários Resumo Descreve as etapas necessárias para registrar a entrada de itens comprados no sistema Pré-Condições Itens devem estar cadastrados anteriormente no sistema Pós-Condições Ações do Autor Ações do Sistema 1. Selecionar a opção de registro de entrada de itens 2. Carregar a tela com os campos a serem preenchidos 3. Inserir todos dados relativos à entrada do item 4. Validar os dados informados 5. Se necessário, alterar, inserir ou excluir os dados da entrada do item 6. Se necessário, salvar as alterações Quadro 3.4 – Descrição de Caso de Uso “Manter Registro de Entrada de Peças” Fonte: Autoria própria 57 Nome do Caso de Uso Manter Registro de Saída de Peças Caso de Uso Geral Ator Principal Gerente Atores Secundários Técnico Resumo Descreve as etapas necessárias para registrar a saída de itens utilizados Pré-Condições O cliente e o item devem estar cadastrados anteriormente no sistema Pós-Condições Ações do Autor Ações do Sistema 1. Selecionar a opção de registro de saída de item 2. Carregar a tela com os campos a serem preenchidos 3. Inserir todos dados relativos à saída do item 4. Validar os dados informados 5. Se necessário, alterar, inserir ou excluir os dados da saída do item 6. Se necessário, salvar as alterações Quadro 3.5 – Descrição de Caso de Uso “Manter Registro de Saída de Peças” Fonte: Autoria própria Nome do Caso de Uso Gerar Relatórios Caso de Uso Geral Ator Principal Gerente Atores Secundários Descreve as etapas necessárias para gerar relatórios do estoque Resumo Pré-Condições Pós-Condições Ações do Autor Ações do Sistema 1. Selecionar a opção de relatório a ser emitido 2. Carregar os dados referentes ao relatório selecionado 3. Mostrar o relatório Quadro 3.6 – Descrição de Caso de Uso “Gerar Relatórios” Fonte: Autoria própria 58 Nome do Caso de Uso Manter Cadastro de Fornecedores Caso de Uso Geral Ator Principal Gerente Atores Secundários Descreve as etapas necessárias para manter o cadastro dos fornecedores Resumo Pré-Condições Pós-Condições Ações do Autor Ações do Sistema 1. Informar o CNPJ do fornecedor 2. Consultar o CNPJ do fornecedor e verificar se já possui cadastro 3. Se já houver este apresentar seus dados CNPJ cadastrado 4. Se necessário, alterar, inserir ou excluir os dados do fornecedor 5. Se necessário, salvar as alterações Quadro 3.7 – Descrição de Caso de Uso “Manter Cadastro de Fornecedores” Fonte: Autoria própria Nome do Caso de Uso Manter Cadastro de Clientes Caso de Uso Geral Ator Principal Gerente Atores Secundários Técnico Resumo Descreve as etapas necessárias para manter o cadastro dos clientes Pré-Condições Pós-Condições Ações do Autor Ações do Sistema 1. Informar o CNPJ do fornecedor 2. Consultar o CNPJ do fornecedor e verificar se já possui cadastro 3. Se já houver este CNPJ cadastrado apresentar seus dados 4. Se necessário, alterar, inserir ou excluir os dados do cliente 5. Se necessário, salvar as alterações Quadro 3.8 – Descrição de Caso de Uso “Manter Cadastro de Clientes” Fonte: Autoria própria 59 Nome do Caso de Uso Manter Cadastro de Tipo de Utilização Caso de Uso Geral Ator Principal Gerente Atores Secundários Técnico Resumo Descreve as etapas necessárias para manter o cadastro dos tipos de utilização Pré-Condições Pós-Condições Ações do Autor Ações do Sistema 1. Informar os dados do tipo de utilização 2. Se já houver este CNPJ cadastrado apresentar seus dados 3. Se necessário, alterar, inserir ou excluir os dados do cliente 4. Se necessário, salvar as alterações Quadro 3.9 – Descrição de Caso de Uso “Manter Cadastro de Tipo de Utilização” Fonte: Autoria própria 3.2.2 Elicitação de Requisitos Os quadros 3.10 a 3.12 apresentam a descrição dos requisitos funcionais, dos requisitos não funcionais e das regras de negócios elicitadas durante a documentação do projeto. 60 Requisito Funcional RF001 RF001.01 RF002 RF002.01 RF003 RF003.01 RF004 RF004.01 RF005 RF005.01 RF006 RF006.01 RF007 RF007.01 RF008 RF008.01 RF009 RF009.01 Descrição Prioridade Manter Cadastro de Usuário Obrigatório Contém as seguintes informações: nome de usuário, senha para o usuário, telefone de contato, nome completo, e-mail, status da conta (ativo ou inativo) e grupo a que o usuário pertence (administrador ou usuário). Obrigatório Manter Cadastro de Itens de Estoque Obrigatório Contém as seguintes informações: nome do fornecedor do item, número de controle interno, descrição original (caso seja importado), descrição traduzida para o português, código de normalização para importação (NCM) e o status do item (ativo ou inativo). Obrigatório Manter registro de entrada de peças Obrigatório Contém as seguintes informações: nome da peça, data de entrada no estoque, quantidade recebida, número da nota fiscal ou invoice de entrada, valor unitário e o status desta entrada (ativo ou inativo). Obrigatório Manter registro de saída de peças Obrigatório Contém as seguintes informações: descrição da peça, código do serviço (RMA), cliente onde foi utilizada a peça, data da venda, quantidade vendida, tipo de utilização (garantia, não garantia, cortesia), valor unitário vendido e status da saída (ativo ou inativo). Obrigatório Manter Estoque Obrigatório Contém as seguintes informações: descrição da peça, quantidade atual em estoque, quantidade mínima, tempo de ressuprimento (em dias), status da peça (ativo ou inativo). Obrigatório Manter Cadastro de Fornecedores Obrigatório Contém as seguintes informações: CPF ou CNPJ do fornecedor, nome da empresa, nome fantasia, endereço completo, CEP, bairro, cidade, estado, país, website (opcional), e-mail de contato, nome do contato, telefone, fax (opcional) e status do fornecedor (ativo ou inativo). Obrigatório Manter Cadastro de Clientes Obrigatório Contém as seguintes informações: CNPJ do cliente, nome da empresa, endereço completo, CEP, bairro, cidade, estado, e-mail de contato, nome do contato, telefone, fax (opcional) e status do cliente (ativo ou inativo). Obrigatório Manter Cadastro de Tipo de Utilização Obrigatório Contém as seguintes informações: código do tipo de utilização, descrição do tipo de utilização da peça e status do tipo de utilização (ativo ou inativo). Obrigatório Gerar relatórios Obrigatório O sistema gera os seguintes relatórios: a) relatório dos itens com quantidade menor ou igual ao mínimo cadastrado; b) relatório com posição consolidada do estoque até a data atual apenas das peças que possuam quantidade igual ou superior a uma unidade; c) relatório mensal das peças utilizadas no mês (sempre contando a partir do primeiro dia do mês corrente até a data da emissão do relatório). Obrigatório Quadro 3.10 – Elicitação de Requisitos Funcionais Fonte: Autoria própria 61 Requisito Não Funcional Descrição Prioridade RNF001 O sistema utiliza o banco de dados Microsoft SQL Server 2008 juntamente com a Microsoft Management Studio Express. Obrigatório RNF002 O sistema executa perfeitamente sobre os sistemas operacionais da Microsoft de núcleo NT, a saber: Windows XP Professional SP3 Windows Server 2008 Windows 7 Professional SP1 Obrigatório RNF003 O sistema foi desenvolvido na linguagem de programação C#. Utiliza-se utilizar bibliotecas de terceiros. Obrigatório RNF004 O sistema utiliza a autenticação de usuários baseado em login e senha. Obrigatório RNF005 Cada usuário tem uma regra de utilização do sistema que pode ser definida no momento do cadastro do usuário. Obrigatório RNF006 O sistema grava em um arquivo de logs as ações efetuadas pelos usuários, ordenadas por data e hora. Obrigatório RNF007 O sistema contém funções que validam os dados de entrada dos formulários, bem como verificam sua consistência no momento de gravação no banco de dados. Obrigatório RNF009 Todo o sistema foi desenvolvido utilizando a língua inglesa como base, inclusive os relatórios emitidos. Quadro 3.11 – Elicitação de Requisitos Não-Funcionais Fonte: Autoria própria Regra de Negócio Descrição Prioridade RNG001 Cada usuário tem uma regra de utilização do sistema que pode ser definida no momento do cadastro do usuário. O administrador tem acesso irrestrito a todas as funcionalidades do sistema. O usuário tem acesso apenas aos requisitos RF004 e RF007. Obrigatório RNG002 Os usuários simples (técnicos) apenas podem manter o cadastro de clientes e registrar a saída de peças do estoque. Obrigatório RNG003 Apenas os usuários administradores podem gerar relatórios do sistema. Obrigatório RNG004 As opções de modificar, excluir ou inserir apenas estão disponíveis aos usuários simples (técnicos) nas opções citadas na regra de negócio RNG002. Para as outras opções, apenas a visualização. Obrigatório RNG005 O sistema verifica a quantidade atual dos itens no estoque e compara com a quantidade mínima para geração dos relatórios. Quadro 3.12 – Elicitação de Regras de Negócio Fonte: Autoria própria Obrigatório 62 3.2.3 Análise A seguir é apresentada a arquitetura de classes do projeto bem como o modelo relacional do banco de dados. No item ‘3.3.2’ possui uma breve explicação sobre cada um desses diagramas. a) Diagramas de classes da camada de modelos: Figura 3.2 - Diagrama de classes da camada de modelos Fonte: autoria própria 63 b) Diagrama de classes da camada de negócios: Figura 3.3 - Diagrama de classes da camada de negócios Fonte: autoria própria 64 c) Diagrama de classes da camada de acesso a dados: Figura 3.4 - Diagrama de classes da camada de acesso a dados Fonte: autoria própria 65 d) Diagrama de classes utilitárias: Figura 3.5 - Diagrama de classes utilitárias Fonte: autoria própria 66 e) MER - Modelo de Entidade-Relacionamento do banco de dados criado: Figura 3.6 MER - Modelo Entidade-Relacionamento Fonte: autoria própria 3.2.4 Implementação Para este projeto, não existiu um protótipo de prova do software nem uma metodologia formal de desenvolvimento. 3.2.5 Gerenciamento de configuração e ambiente a) Por se tratar de um sistema de baixa complexidade e apenas os três autores deste projeto estão envolvidos no processo de desenvolvimento do sistema, não houve necessidade da criação de um plano de gerenciamento de configuração, sendo apenas detalhadas no quadro 3.13 os recursos e as ferramentas necessárias 67 para o desenvolvimento e a configuração das máquinas dos ambientes de desenvolvimento e teste. Toda alteração ou revisão necessária foi discutida com todos os membros da equipe antes de sua implantação; b) O quadro 3.13 mostra uma lista das ferramentas e recursos utilizados no processo de desenvolvimento do projeto: Ferramenta Descrição IIS (Internet Information Service) Servidor de informações de Internet utilizado para disponibilizar o funcionamento da aplicação web Microsoft SQL Server 2008 Sistema de Gerenciamento de Banco de Dados utilizado Microsoft Visual Studio 2008 Ferramenta utilizada para desenvolvimento do código de programação do software Microsoft C# Linguagem de programação utilizada Microsoft Windows 7 Professional Sistema operacional utilizado durante processo de desenvolvimento Microsoft .NET Framework 3.5 Biblioteca de classes Skype 5.9.0.115 Ferramenta de comunicação da equipe Quadro 3.13 – Lista das ferramentas e recursos utilizados no processo de desenvolvimento do projeto Fonte: Autoria própria c) O quadro 3.14 contém a configuração do hardware dos computadores dos ambientes de desenvolvimento e de testes: Ambiente Configuração de Hardware Desenvolvimento Processador: Intel Core 2 Quad 6600 Memória RAM: 4GB Hard Disk: 500 GB IP: Dinâmico Teste Processador: Intel Core i5 Memória RAM: 4GB Hard Disk: 500 GB IP: Dinâmico Quadro 3.14 – Configuração de Hardware Fonte: Autoria própria 68 3.3 Construção 3.3.1 Modelagem de Negócio / Requisitos / Análise As três primeiras etapas da fase da construção do software permaneceram-se inalteradas, mantendo as mesmas informações contidas no item 3.2. 3.3.2 Implementação O desenvolvimento do software seguiu o conceito de três camadas, denominado MVC (Model-View-Controler), no qual cada camada contém classes que apresentam um conjunto de características em comum e funcionalidades interrelacionadas. A camada de modelos (model) engloba as classes do modelo de negócios em seu estado puro, sendo que seus objetos apresentam atributos públicos para que as outras camadas do sistema possam acessar as informações de seu estado interno, bem como promover a alteração desse estado. Modelos geralmente mapeiam as colunas das tabelas do banco de dados para seus atributos em uma relação 1..1, ou seja, para cada atributo público de um objeto desse tipo, há uma coluna na tabela correspondente. Quando um atributo do objeto refere-se a uma lista de itens, diz-se que, para cada atributo do modelo, há uma tabela correspondente no banco de dados. O diagrama de classes dessa camada pode ser visto na figura 3.2 apresentada no item 3.2.3. A camada de lógica e de negócios (controler) engloba as classes que contém as regras de negócios levantadas durante a fase de elicitação de requisitos. Estas classes, por sua vez, também possuem métodos que permitem a validação dos objetos criados, bem como a invocação dos métodos correspondentes da camada de acesso a dados. Seu diagrama pode ser visto na figura 3.3 apresentada no item 3.2.3. 69 A camada de apresentação (view) engloba todos os recursos de apresentação, como formulários Web, páginas estáticas, scripts, imagens e folhas de estilo. É com essa camada que o usuário interage e pela qual geralmente é medida a qualidade de um sistema de informação. Para esta camada foi criada, ainda, uma biblioteca de classes utilitárias, cujo diagrama pode ser visto na figura 3.5 apresentada no item 3.2.3, e que tem por finalidade concentrar as funcionalidades (propriedades e métodos) que se repetem por toda a aplicação, incluindo, mas não se limitando, a funções de encriptação e desencriptação de textos e senhas de usuários, formatação de mensagem de erro, extensão de componentes de formulários, tratamento de tipos enumerados, tradução e conversão de tipos de dados, dentre outras. O sistema utiliza-se ainda de mais um padrão de projeto denominado DAL (Data Access Layer ou Camada de Acesso de Dados), englobando todas as classes que fazem acesso diretamente às entidades correspondentes no sistema de gerenciamento de banco de dados, permitindo a inclusão, a consulta, a alteração e a exclusão dos dados. O diagrama de classes dessa camada pode ser visto na figura 3.4 apresentada no item 3.2.3. Além das camadas e dos padrões de projetos descritos, o sistema utilizou-se da biblioteca jQuery, escrita em linguagem Javascript, que fornece suporte para elementos visuais de interface com o usuário, tais como calendário (que pode ser visto nas telas de registro de entrada e saída de peças); os gráficos utilizados nos relatórios e no dashboard da tela inicial; e nas máscaras de entrada de dados em todos os formulários em que se fizeram necessárias. 3.3.3 Testes Após o desenvolvimento do sistema, o mesmo foi implantado em uma máquina de testes diversa daquela do ambiente de desenvolvimento, visando uma análise do seu comportamento em diferentes configurações de hardware e software. Realizada a execução do script em SQL para a criação do banco de dados do sistema e das tabelas necessárias, assim como seu relacionamento (chaves 70 primárias e estrangeiras), copiou-se a versão publicada do sistema - com suas bibliotecas já compiladas - para o diretório raiz do Internet Information Services, normalmente sob o caminho C:\inetpub\wwwroot. O sistema apresentou funcionamento correto e dentro do esperado, sem nenhuma falha de integração entre as diferentes camadas. A conexão com o banco de dados ocorreu sem nenhuma falha, e o único parâmetro que precisou ser alterado em seu arquivo de configuração foi a senha do usuário 'sa' (ou system administrator) padrão do SQL Server 2008. Após esta configuração inicial, apenas se fez necessário que o usuário abrisse seu navegador de Internet favorito e informasse a URL 'http://localhost/FARO' para acesso ao sistema. As figuras 3.7 até 3.19 demonstram as telas do sistema após a implantação: a) A tela inicial conforme figura 3.7 possui a função de login no sistema: Figura 3.7 - Tela inicial de login do sistema Fonte: autoria própria 71 b) A figura 3.8 demonstra a tela para alteração de senha do usuário: Figura 3.8 - Tela inicial de alteração de senha Fonte: autoria própria 72 c) Caso o usuário esqueça a senha, é solicitado o e-mail de cadastro do usuário para recuperação de senha conforme figura 3.9: Figura 3.9 - Tela inicial de redefinição de senha Fonte: autoria própria 73 d) A figura 3.10 mostra a tela Home do sistema com informações de alguns dashboards e as opções do menu: Figura 3.10 - Tela inicial com informações no dashboard e as opções do menu Fonte: autoria própria 74 e) A figura 3.11 demonstra a tela “Manter cadastro de Cliente” com os campos para preenchimento e logo abaixo uma lista com todos os clientes já existentes no banco de dados: Figura 3.11 - Tela de manutenção de Clientes Fonte: autoria própria 75 f) A figura 3.12 demonstra a tela “Manter cadastro de fornecedores” com os campos para preenchimento e logo abaixo uma lista com todos os fornecedores já existentes no banco de dados: Figura 3.12 - Tela de manutenção de Fornecedores Fonte: autoria própria 76 g) A figura 3.13 demonstra a tela “Manter inventário” com os campos para preenchimento e logo abaixo uma lista com todos os dados dos itens já existentes no banco de dados: Figura 3.13 - Tela de manutenção de Inventário Fonte: autoria própria 77 h) A figura 3.14 demonstra a tela “Manter Tipo de Uso” com os campos para preenchimento e logo abaixo uma lista com todos os tipos de uso já existentes no banco de dados: Figura 3.14 - Tela de manutenção de Tipo de Uso Fonte: autoria própria 78 i) A figura 3.15 demonstra a tela “Manter Usuário” onde o administrador pode cadastrar os usuários do sistema e logo abaixo uma lista com os usuários já existentes no banco de dados: Figura 3.15 - Tela de manutenção de Usuário Fonte: autoria própria 79 j) A figura 3.15 demonstra a tela “Manter Cadastro de Peças” onde o administrador pode cadastrar os tens do estoque e, logo abaixo, uma lista com os itens já existentes no banco de dados: Figura 3.16 - Tela de manutenção de Peças Fonte: autoria própria 80 k) A figura 3.17 demonstra a tela “Manter Registro de Entrada de Peças” e seus campos para preenchimento e, logo abaixo, um histórico de todas as entradas de itens no estoque: Figura 3.17 - Tela de Registro de Entrada de Peças Fonte: autoria própria 81 l) A figura 3.18 demonstra a tela “Manter Registro de Saída de Peças” e seus campos para preenchimento e, logo abaixo, um histórico de todas as saídas de itens do estoque: Figura 3.18 - Tela de Registro de Saída de Peças Fonte: autoria própria 82 m) A figura 3.19 demonstra a tela “Contato” onde possui informações sobre os desenvolvedores do sistema, neste caso os autores deste projeto: Figura 3.19 - Tela de Contato com os autores Fonte: autoria própria 83 n) A figura 3.20 demonstra a tela “Relatório Consolidado” onde demonstra uma posição do estoque com todas as suas peças existentes: Figura 3.20 - Tela de Relatório Consolidado Fonte: autoria própria 84 o) A figura 3.21 demonstra a tela “Relatório Consolidado exportado para Excel” onde demonstra uma posição do estoque com todas as suas peças existentes, porém exportado para uma planilha em Excel: Figura 3.21 - Tela de Relatório Consolidado exportado para Excel Fonte: autoria própria 85 p) A figura 3.22 demonstra a tela “Relatório de Peças com Quantidade Críticas” onde demonstra uma posição do estoque com todas as suas peças com quantidades críticas existentes: Figura 3.22 - Tela de Relatório de Peças com Quantidades Críticas Fonte: autoria própria 86 l) A figura 3.23 demonstra a tela “Relatório de Peças com Quantidade Críticas exportada para Excel” onde demonstra uma posição do estoque com todas as suas peças com quantidades críticas existentes, porém exportada para Excel: Figura 3.23 - Tela de Relatório de Peças com Quantidades Critica exportado para Excel Fonte: autoria própria 87 CONCLUSÃO Para ganhar e manter competitividade em um mundo globalizado, as empresas necessitam, além de criar produtos ou serviços inovadores, aperfeiçoar constantemente seus processos internos e externos. Todas essas atividades dependem, em menor ou maior grau, dos recursos disponibilizados pela área de Tecnologia da Informação e Comunicação. Nesse contexto a empresa objeto do estudo possui um processo de gestão de estoque baseado em controles manuais, sujeito a erros de todo tipo, impossibilitando aos gestores terem uma visão correta e completa de seu inventário de peças e equipamentos. A partir desse cenário, foi proposto o desenvolvimento de um software que contemplasse o controle automatizado desse inventário, e que permitisse a tomada de decisões com base em informações completas e corretas. Embasado nas melhores práticas da metodologia de desenvolvimento de software, o protótipo gerado encontra-se totalmente alinhado com os requisitos e as regras de negócio, inicialmente levantados, integrando os diversos cadastros que fazem parte do processo de gerenciamento do estoque de peças e componentes da empresa. Ao término do projeto, considera-se o objetivo desse trabalho cumprido. Concluindo, a Tecnologia da TI é uma ferramenta estratégica para as organizações, pois permite controles eficientes e subsídios para tomada de decisões. Ressalta-se que a criação de soluções de software deve ser embasada nos conceitos da Engenharia de Software, pois, assim como qualquer outro produto, este deve atender as expectativas e necessidades dos clientes. 88 BIBLIOGRAFIA BALLOU, Ronald H.. Logística empresarial: transportes, administração de materiais e distribuição física. São Paulo: Atlas, 1993. BALLOU, Ronald H. Gerenciamento da cadeia de suprimentos/logística empresarial. 5 ed. São Paulo: Bookman, 2004. BARBACELI, Marco. A importância do TI na sua empresa. Disponível em: http://www.gestaodecarreira.com.br/coaching/blog-de-ti/a-importancia-do-ti-na-suaempresa.html. Acesso em: 18.mar.2012. BEAL, Adriana. Introdução à gestão de tecnologia da informação. Disponível em: http://www.2beal.org/ti/manuais/GTI_INTRO.PDF Acesso em: 05.mai.2012. BERTAGLIA, Paulo R.. Logística e gerenciamento da cadeia de abastecimento. 2 ed. São Paulo: Saraiva, 2009. BRANDÃO, Vladimir; GONÇALVES, Ada Cristina V.. Brasil inovador: o desafio empreendedor: 40 histórias de sucesso de empresas que investem em inovação. Brasília: IEL-NC, 2006. BRUSTELLO, Alexandre de Carvalho; SALGADO, Manoel Henrique. Elementos básicos de uma Cadeia de Suprimentos. Disponível em: http://www.simpep.feb.unesp.br/anais/anais_13/artigos/677.pdf. Acesso em: 13.mai.2012. CARLOS, Alberto de Faria. VANTAGEM COMPETITIVA: O Que e Como? Disponível em: http://www.merkatus.com.br/10_boletim/120.htm. Acesso em: 12.mai.2012. CARVALHO, Cristina M. J.; RIBEIRO, Leonor C. Os agentes econômicos e suas relações. Disponível em: http://prof.santana-esilva.pt/economia_e_gestao/trabalhos_06_07/word/Os%20Agentes%20Econ%C3% B3micos%20e%20as%20suas%20rela%C3%A7%C3%B5es.pdf. Acesso em 17.mar.2012. CARVALHO, Vininha F. A importância da inovação dentro das empresas. Disponível em: http://www.revistaecotour.com.br/novo/home/default.asp?tipo=noticia&id=1903. Acesso em: 17.mar.2012. 89 CAVAGNOLI, Irani. Sensibilização da Importância da Inovação. Disponível em: http://gestaoeinovacao.com/?p=1678. Acesso em: 17.mar.2012. CHAGAS, Carla P.; SOUZA, Simone; SIMÃO, Flávio P. A Relevância do Sistema Informatizado para Controle de Estoques na Gestão Empresarial: Um Estudo de Caso. Disponível em: http://www.aedb.br/seget/artigos09/220_220_Relevancia_do_Sistema_Informatizado _para_Controle_de_Estoques.pdf. Acesso em: 19.mai.2012. CORRÊA, Henrique L., GIANESI, Irineu G. N., CAON, Mauro. Planejamento, programação e controle da produção : MRP II/ERP : conceitos, uso e implantação: base para SAP, Oracle Applications e outros softwares integrados de gestão. 5 ed. São Paulo : Atlas, 2007. FITZSIMMONS, James A., FITZSIMMONS Mona J. Administração de Serviços: operações, estratégia e tecnologia da informação. 4. ed. São Paulo: Artmed, 2004. GARCIA, Eduardo S. et al. Gestão de estoques: otimizando a logística e a cadeia de suprimentos. Rio de Janeiro: E-Papers, 2006. GUEDES, Gilleanes T. A.. UML 2: Uma abordagem prática. São Paulo: Novatec, 2009. HABERKORN, Ernesto. Um bate papo sobre T.I.: Tudo que você gostaria de saber sobre o ERP e a tecnologia da Informação, mas ficava encabulado de perguntar. São Paulo: Saraiva, 2009. LODDI, Sueli Aparecida. Tecnologia da Informação como suporte para a competitividade: um estudo no setor de seguros. Disponível em: http://www.uscs.edu.br/posstricto/administracao/dissertacoes/2006/Sueli_Aparecida_ Loddi/dissertacao.pdf. Acesso em: 20.abr.2012. MARTINEZ, Marina. RUP. Disponível em http://www.infoescola.com/engenharia-desoftware/rup/#. Acesso em: 09.mai.2012. MARTINS, Eliane F. Gestão de Estoques. Disponível em: http://www.administracao.ufcg.edu.br/adm_rec_mat_pat/Apostila%20Gestao%20de %20Estoques%202009.2.pdf. Acesso em: 17.mar.2012. MARTINS, José C. Cordeiro. Gerenciando projetos de desenvolvimento de software com PMI, RUP e UML. 5. ed. Rio de Janeiro: Brasport, 2010. 90 MARTINS, Petrônio. G.; LAUGENI, Fernando P. Administração da produção. 1. ed. São Paulo: Saraiva, 1998. MARTINS, Petrônio G; LAUGENI, Fernando P. Administração da produção. 2. ed. São Paulo : Saraiva, 2006. PEREGRINO, Fernanda. O que é inovação. Disponível em: http://www.facadiferente.sebrae.com.br/2010/04/20/programa-02-o-que-e-inovacao/. Acesso em: 01.mai.2012. PORTER, Michael E. Estratégia competitiva: técnicas para análise de indústrias e da concorrência. Rio de Janeiro : Elsevier, 2004. RAMOS, Anatália S. M.; SILVA, Edwin A. J. da; ALVERGA, Patrick R. O papel estratégico da TI nas micro e pequenas empresas. Natal: SEBRAE/RN, 2009. RIKARD, Frank. A inovação como paradigma de competitividade. Disponível em: http://www.administradores.com.br/informe-se/artigos/a-inovacao-como-paradigmade-competitividade/25592/ Acesso em: 09.mai.2012. RODRIGUES, Washington L. H. P.; SANTIN, Nilson J. Gerenciamento da cadeia de suprimentos. Disponível em: ftp://ftp.usjt.br/pub/revint/97_37.pdf. Acesso em: 17.mar.2012. SANTOS, Edgard. Como lidar com o mercado competitivo. Disponível em: http://www.recantodasletras.com.br/artigos/3422676 Acesso em: 05.mai.2012. SANTOS, Marco A. C. dos. A Importância da TI nas Organizações. Disponível em: http://www.baguete.com.br/artigos/636/marco-antonio-carvalho-dossantos/29/05/2009/a-importancia-da-ti-nas-organizacoes. Acesso em: 18.mar.2012. SCHACH, Stephen R.. Engenharia de Software: Os paradigmas clássicos orientado a objetos. 7. ed. São Paulo: McGraw-Hill, 2009. SLACK, Nigel; CHAMBERS, Stuart; JOHNSTON, Robert. Administração da produção. 3. ed. São Paulo: Atlas, 2009. SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice Hall, 2011. 91 SOUZA, Meidson Oliveira. A importância do controle diário da produção para metas anuais: um estudo de caso na Vale S/A, São Luís – MA. Disponível em: http://pt.scribd.com/doc/76259535/Controle-Diario-da-Producao-Um-estudo-de-caso. Acesso em: 09.mai.2012. MAIA, Hugo. As fases e disciplinas do RUP. http://hugohabbema.blogspot.com.br/2009/09/as-fases-do-rup.html. 09.jun.2012. Disponível em: Acesso em: