Vous êtes sur la page 1sur 91

Guilherme Prado Fernandes

Atualizao do Sistema CorteBi Utilizando Tcnicas de Otimizao e Engenharia de Software

Monografia apresentada ao Departamento de Cincias de Computao e Estatstica do Instituto de Biocincias, Letras e Cincias Exatas da Universidade Estadual Paulista Jlio de Mesquita Filho, como parte dos requisitos necessrios para aprovao na disciplina Projeto Final.

So Jos do Rio Preto 2011

Guilherme Prado Fernandes

Atualizao do Sistema CorteBi Utilizando Tcnicas de Otimizao e Engenharia de Software

Monografia apresentada ao Departamento de Cincias de Computao e Estatstica do Instituto de Biocincias, Letras e Cincias Exatas da Universidade Estadual Paulista Jlio de Mesquita Filho, como requisito para obteno do ttulo de Bacharel em Cincia da computao.

Sob orientao da Profa. Dra. Maria do Socorro Nogueira Rangel.

So Jos do Rio Preto 2011

Guilherme Prado Fernandes

Atualizao do Sistema CorteBi Utilizando Tcnicas de Otimizao e Engenharia de Software

Monografia apresentada ao Departamento de Cincias de Computao e Estatstica do Instituto de Biocincias, Letras e Cincias Exatas da Universidade Estadual Paulista Jlio de Mesquita Filho, como parte dos requisitos necessrios para aprovao na disciplina Projeto Final.

____________________________
Prof. Dr. Maria do Socorro N. Rangel

___________________________
Guilherme Prado Fernandes

Banca Examinadora: Prof. Dr. Ins Aparecida Gasparotto Boaventura Prof. Dr. Rogria Cristiane Grato de Souza

Aos meus pais, Maria Nelly e Arthur. minha irm Gabriela. minha princesa Camila. Dedico

AGRADECIMENTOS
A Deus, em primeiro lugar, por todas as bnos e oportunidades concedidas.

minha professora orientadora Socorro Nogueira Rangel, pela orientao, dedicao e pacincia durante o desenvolvimento deste projeto.

Aos meus pais Maria Nelly e Arthur, pelo amor incondicional, carinho, e incentivo. Pela forma em que fui criado e pelos exemplos de tica, moral e educao. minha irm Gabriela pelo apoio constante e carinho.

Um agradecimento especial minha princesa Camila que sempre esteve presente nas horas mais difceis e por todo o carinho, considerao e amor demonstrados durante todos esses anos. Agradeo tambm sua famlia por todo o carinho e apoio.

Aos meus amigos e companheiros de faculdade que de alguma forma se tornaram presentes em momentos felizes de graduao.

Agradeo aos funcionrios da Fbrica L e em especial ao Paulo e Diego por todo o apoio e ateno despendida durante as visitas realizadas no projeto.

Por ltimo, mas no menos importante, agradeo Pr-Reitoria de Extenso PROEX por ter proporcionado o financiamento desta pesquisa.

todos o meu profundo agradecimento.

No tentes ser bem sucedido, tenta antes ser um homem de valor. Albert Einstein

RESUMO

Com um mercado cada vez mais competitivo, haver sempre o interesse do setor moveleiro em elaborar padres para o corte da matria prima que resultam em um bom aproveitamento das placas de madeira, e que permitam um processo de corte gil. O foco do presente trabalho direcionado a este setor e possui o objetivo de aprimorar sistemas computacionais que contribuam para reduzir o custo de produo e a perda de matria prima. Para a gerao de padres de corte que atendam este objetivo, necessria a aplicao de tcnicas de otimizao para a soluo do problema do corte de estoque bidimensional. O intuito desde trabalho a atualizao e manuteno do sistema CorteBi criado para auxiliar o planejamento da produo em fbrica de mveis. Para tal utilizamos tcnicas de engenharia de software, juntamente ferramenta CASE, para a construo de uma documentao padronizada, baseada em diagramas UML. Utilizamos tambm mtodos de otimizao combinatria, para a incluso de um mdulo de arredondamento a fim de melhorar a soluo inteira.

ABSTRACT

With an increasingly competitive market, there is always interest in the furniture sector in elaborate patterns for cutting raw materials that result in effective use of wooden boards, and provide an agile cutting process. The focus of this work is directed to this sector and has the objective of upgrading computer systems that help reduce production costs and loss of raw material. The generation of cutting patterns that meet this goal requires the application of optimization techniques to solve the two-dimensional cutting stock problem. The objective of the work is to upgrade and to maintain the CorteBi system created to assist the production planning in a furniture factory. In this work, we use software engineering techniques, along with the CASE tool, for building a standard documentation based on UML. We also use methods of combinatorial optimization, to include a rounding module to improve the integer solution.

NDICE
Lista de Figuras......................................................................................................................... i Lista de Tabelas........................................................................................................................ ii Lista de Abreviaturas e Siglas............................................................................................ iii CAPTULO I Introduo ........................................................................................................ 1 1.1 1.2 1.3 Consideraes Iniciais ................................................................................................. 1 Objetivos ..................................................................................................................... 2 Organizao da Monografia ........................................................................................ 2

CAPTULO II Reviso Bibliogrfica ...................................................................................... 4 2.1 2.1.1 2.1.2 2.1.3 2.2 Reengenharia de Software .......................................................................................... 4 Engenharia Reversa .............................................................................................. 9 Documentao de Software ................................................................................ 12 Ferramentas CASE para a Reengenharia de Software ....................................... 13 UML Linguagem de Modelagem Unificada ........................................................... 17

2.2.1 Diagramas de Casos de Uso ........................................................................................... 20 2.2.2 Diagramas de Classes ..................................................................................................... 23 2.3 2.3.1 2.3.2 2.4 2.5 O Problema de Corte de Estoque Bidimensional ....................................................... 25 Mtodo Simplex com Gerao de Coluna .......................................................... 30 Gerao de Padres de Corte Bidimensionais .................................................... 31 Estrutura e evoluo do Sistema CorteBi .................................................................. 34 O setor moveleiro e o Plo de Votuporanga-SP ........................................................ 36

CAPTULO III - Reengenharia de Software do Sistema CorteBi ........................................... 39 3.1 3.2 3.2.1 3.2.2 3.3 Criao e padronizao da Documentao da Interface Grfica do CorteBi............. 39 Engenharia Reversa do Sistema de Interface ..................................................... 40 Anlise de Cdigo e Criao da Documentao.................................................40 Utilizao do Sistema CorteBi............................................................................56

Novas funcionalidades - Incluso de um novo Mdulo de Arredondamento ........... 59

CAPTULO IV

Coleta

de

dados

avaliao

computacional

do

mdulo

de

arredondamento... ..................................................................................................................... 63 4.1 A Fbrica L ................................................................................................................ 64

4.2

Avaliao Computacional do Mdulo BRURED ...................................................... 68

CAPTULO V Concluso...................................................................................................... 72 REFERNCIAS BIBLIOGRFICAS................................................................................74

LISTA DE FIGURAS

Figura 1. Processos de engenharia progressiva e reengenharia.............................................5 Figura 2. Processo de Reengenharia de software..................................................................8 Figura 3. Modelo do processo de Reengenharia de Software...............................................8 Figura 4. Processo de engenharia reversa...........................................................................10 Figura 5. Processo de engenharia reversa...........................................................................11 Figura 6. Classificao dos diagramas UML......................................................................20 Figura 7. Exemplos de atores de um sistema......................................................................21 Figura 8. Exemplo de relacionamentos em casos de Uso...................................................22 Figura 9. Exemplo de uma classe.......................................................................................23 Figura 10. Exemplo de diagrama de classes.......................................................................25 Figura 11. Exemplo padro de Corte Unidimensional........................................................27 Figura 12. Exemplo de padro de Corte Bidimensional.....................................................27 Figura 13. Exemplo de padro de Corte Tridimensional....................................................28 Figura 14. Exemplos de Padres de corte guilhotinado e no-guilhotinado.......................32 Figura 15. Estgios de corte em um padro........................................................................33 Figura 16. Padres de corte em trs estgios......................................................................34 Figura 17. Tela Inicial da interface atual do Sistema CorteBi............................................35 Figura 18. Diagrama de Pacotes do Sistema CorteBi.........................................................44 Figura 19. Diagrama de Classes para operaes de Planos de Corte..................................45 Figura 20. Diagrama de Classes para operaes de Projeto...............................................46 Figura 21. Diagrama de Classes para desenho de padres de Corte...................................47 Figura 22. Diagrama de Casos de Uso - Gerenciar sistema CorteBi..................................48 Figura 23. Diagrama de Casos de Uso 1 - Gerenciar Objetos............................................50 Figura 24. Diagrama de Casos de Uso 2 - Gerenciar Projetos...........................................52 Figura 25. Diagrama de Casos de Uso 3 - Gerenciar Planos de Corte...............................59 Figura 26. Janela para cadastro de Placa...........................................................................56 Figura 27. Janela para cadastro de Projeto........................................................................57 Figura 28. Janela para gerao dos Planos de Corte..........................................................58 Figura 29. Janela que apresenta os Padres de Corte........................................................59 Figura 30. Cdigo-Fonte do Mdulo BRURED................................................................60 Figura 31. Especificao do mdulo BRURED implementado no CorteB........................61 Figura 32. Demonstrativo de linha de produo da Fbrica L...........................................64 Figura 33. Esboo da mquina seccionadora automtica vista de cima.............................66 Figura 34. Fotos do processo de Corte na seccionadora automtica..................................66

LISTA DE TABELAS

Tabela 1. Comparativo entre as ferramentas CASE............................................................16 Tabela 2: Exemplos de multiplicidade................................................................................24 Tabela 3. Descrio dos pacotes e seu contedo.................................................................41 Tabela 4. Descrio da funcionalidade de cada classe no sistema CorteBi.........................42 Tabela 5: Documentao do Caso de Uso Gerenciar Sistema CorteBi...............................49 Tabela 6: Documentao do Caso de Uso Gerenciar Objetos.............................................51 Tabela 7: Documentao do Caso de Uso Gerenciar Projetos............................................53 Tabela 8: Documentao do Caso de Uso 3 - Gerenciar Planos de Corte... .......................55 Tabela 9: Objetos utilizados para fabricao do Armrio Berlim de cinco portas..............69 Tabela 10: Itens utilizados no teste do BRURED...............................................................70 Tabela 11: Testes e comparaes do uso do mtodo BRURED no arredondamento de solues inteiras... .............................................................................................................71

ii

LISTA DE ABREVIATURAS E SIGLAS

AE: Enterprise Architect CASE: Computer-Aided Software Engineering GUI: Graphic User Interface IBGE: Instituto Brasileiro de Geografia Estastica ISO: International Organization for Standardization ou Organizao Internacional de Normalizao MDF: Medium Density Fireboard ou Painel de Mdia Densidade MDP: Medium Density Particleboard ou Painel de Partculas de Mdia Densidade OMG: Object Management Group OMT: Object-Modeling Technique OOSE: Object-Oriented Software PCP: Planejamento e Controle de Produo UML: Unified Modeling Language ou Linguagem de Modelagem Unificada

iii

CAPTULO I Introduo

1.1

Consideraes Iniciais
Na indstria moveleira necessrio cortar placas retangulares (objetos) em retngulos

menores (itens), que sero utilizados como componentes de mveis. As combinaes desses itens indicadas de maneira precisa dentro do objeto, respeitando um conjunto de restries do processo de corte, so denominadas padres de corte. O problema de otimizao, conhecido como Problema de Corte de Estoque, consiste em determinar a combinao desses padres de cortes de forma a atender uma demanda pr-especificada dos itens e que satisfaam a critrios pr-estabelecidos, como minimizar o nmero de objetos cortados e/ou diminuir o custo final de produo. Inmeras pesquisas vm sendo desenvolvidas nesta rea para encontrar o melhor conjunto de padres de corte capaz de suprir eficientemente a demanda. O problema de corte e empacotamento (PCE) abordados nos artigos de Arenales et al. (2004), Dyckhoff (1990) e Rangel (2005), um dos assuntos tratados neste trabalho. O objetivo contribuir para a manuteno e criao de documentao de um sistema em desenvolvimento chamado CorteBi (Perin e Rangel 1989). O sistema CorteBi, desenvolvido com o intuito de resolver o problema de corte de estoque bidimensional, foi criado em 1989 como um sistema de pesquisa. Sua segunda verso, distribuda em 2004, foi obtida atravs de especializaes do sistema para o setor moveleiro. Esse sistema se encontra em sua quarta verso, e possui uma interface grfica com usurio (GUI) de fcil manipulao e integrada a um banco de dados. A entrada de dados feita manualmente, incluindo-se as medidas do objeto, dos itens a serem cortados da espessura da serra e a demanda dos itens. A sada do sistema interpreta os resultados de forma simples, desenha os padres de corte em diversas cores e apresenta as informaes mais relevantes como clculos de porcentagem da perda, mdia de aproveitamento e quantidade de placas a serem cortadas. Com a interface atual, o usurio pode facilmente gerar padres de corte para lotes inteiros, tanto lotes homogneos (um tipo de mvel), como para lotes heterogneos (vrios tipos de mveis). A freqncia de uso dos padres de corte nem sempre atende exatamente a 1

demanda, e pode produzir peas excedentes. Para melhorar este problema, inclumos um novo algoritmo de arredondamento da soluo da relaxao linear do problema chamado BRURED (Wscher, 1996). O objetivo deste mtodo diminuir o excesso de produo causado pelo arredondamento da soluo pelo maior inteiro. Visto que o arredondamento pode causar produo excessiva de itens, o mtodo BRURED verifica quais variveis podem ser reduzidas de uma unidade sem deixar de atender a demanda de nenhum item. Para melhor compreenso do sistema CorteBi, foram criados dois tipos de documentaes baseadas em diagramas UML com informaes relevantes da estrutura do sistema. A primeira documentao um diagrama de Casos de Uso, a qual acompanha uma descrio sucinta da funcionalidade prevista em cada um dos casos de uso e o papel exercido pelos atores representados no diagrama. A outra documentao um diagrama de classes no nvel anlise, de forma a destacar as principais classes e seus atributos que refletem o domnio de negcios do sistema.

1.2

Objetivos
A presente pesquisa tem por objetivo a incluso do novo algoritmo de

arredondamento, o BRURED, deixando o sistema mais robusto e confivel, a ponto de gerar padres de corte que atendam demanda diminuindo a produo excedente de itens. Posteriormente, realizamos uma padronizao simples no layout dos botes da interface grfica para melhorar a usabilidade e facilidade de navegao. Realizamos tambm a criao das documentaes como os diagramas de Classe que apresentam a estrutura e relaes das classes que servem de modelo para objetos , e tambm os diagramas de Casos de Uso Segundo Jacobson, um documento narrativo que descreve a sequncia de eventos de um ator que usa um sistema para completar um processo. Todos estes documentos integraram a pesquisa com a finalidade de especificar detalhes do projeto de interface grfica, bem como todas as informaes relevantes para sua contnua manuteno.

1.3

Organizao da Monografia
Os demais captulos desta monografia esto organizados da seguinte forma. O captulo

dois apresenta inicialmente uma reviso bibliogrfica acerca de toda a literatura utilizada ao 2

longo do estudo com apresentao de procedimentos e tcnicas quanto reengenharia de software engenharia, documentao e ferramentas, a importncia da utilizao da linguagem de modelagem unificada e construo dos diagramas de classes e casos de uso, o problema de corte de estoque bidimensional voltado indstria moveleira, o mtodo simplex com gerao de colunas, a estrutura e evoluo do sistema CorteBi e por fim uma breve descrio do setor moveleiro no pas, dando enfoque ao plo de Votuporanga. O terceiro captulo do presente estudo aborda a criao e padronizao da documentao da interface grfica do CorteBi e funcionalidades com o mdulo de arredondamento BRURED. No captulo quatro, descrito o processo de produo e gerao de padres de corte, de uma fbrica do plo de Votuporanga. No captulo cinco so descritas as avaliaes e testes computacionais, segundo a aplicao com o mtodo BRURED no sistema CorteBi e por fim no ltimo captulo, o de nmero seis, temos as consideraes finais e sugestes de trabalhos futuros.

CAPTULO II Reviso Bibliogrfica

2.1

Reengenharia de Software
Devido crescente demanda de softwares destinados s empresas que mantm

sistemas de negcios e a importncia de mant-los em bom funcionamento, a ocorrncia de problemas com manutenes, adaptaes e correes passou a ser mais comum no mercado de softwares. Estes problemas, na maioria dos casos, so decorrentes de cdigos fonte mal estruturados, documentao mal elaborada, e falta de compreenso do sistema. A partir do momento em que um sistema comea a ser utilizado, ele entra em um estado contnuo de modificao e atualizao. Mesmo que tenha sido construdo com aplicaes das melhores tcnicas de projeto e codificao existentes, os sistemas vo se tornando desatualizados em vista das novas tecnologias que so disponibilizadas, sendo assim necessrio evoluir para adaptar s novas arquiteturas, novas regras de negcios, novas plataformas e tambm disponibilizar novas funcionalidades para atender ao usurio final. Estima-se que em mdia a atividade de manuteno consome em torno de 70% de todo o esforo de software despendido durante o ciclo de vida do software (Lemos, 2005). Para Warden (2000), o conceito de reengenharia tem como principal objetivo melhorar um sistema de alguma maneira, atravs de alteraes significativas que proporcionem melhoria, porm, sem alterar as suas funes. Para Sommerville (2007), a reengenharia de software se ocupa de reestruturar sistemas antigos, para que sua manuteno torne-se mais fcil. A reengenharia abrange a organizao e reestruturao do sistema, a atualizao da documentao e traduo do sistema para uma linguagem de programao melhor estruturada e mais atualizada. Em suas palavras, Sommerville ressalta que A funcionalidade do software no modificada e, normalmente, a arquitetura do sistema tambm permanece a mesma. Segundo Pressman (2006), a reengenharia de software, tambm chamada de recuperao ou renovao, extrai as informaes de projeto de um software j existente e usa essas informaes para alterar ou reconstituir o sistema, preservando as funes existentes, ao mesmo tempo em que acrescenta nova funcionalidade com o intuito de melhorar sua qualidade. Dentre as solues que podem ser adotadas para a melhoria do software podemos citar a construo de um novo sistema, a evoluo de arquitetura e por ltimo a reengenharia de 4

software (Sommerville, 2007). Quando o sistema no simples de ser mantido sendo, porm de grande utilidade, ele pode ser reconstrudo. Porm a substituio do sistema muitas vezes invivel por questes de tempo, operacionais e financeiras, pois pode exigir treinamento e adaptao dos usurios ao novo sistema. Existem duas vantagens principais da reengenharia de software em relao s outras abordagens: uma delas o alto risco que representa o re-desenvolvimento de um sistema fundamental para uma organizao, e por ltimo o custo relativamente baixo da reengenharia de software (Sommerville, 2007). H uma diferena clara entre o desenvolvimento de um novo software e reengenharia de software. A distino est relacionada ao ponto de partida de cada um dos processos. O desenvolvimento de um novo software (definido como engenharia progressiva) inicia-se com uma especificao escrita do software que ser construdo, enquanto que a reengenharia de software inicia-se tomando como base um sistema j existente. A Figura 1 resume as diferenas entre os dois processos.

Fonte: Sommerville, 2007.

Figura 1: Processos de engenharia progressiva e reengenharia Alguns fatores so determinantes para que o processo de reengenharia se torne uma atividade eficaz, caso contrrio pode durar meses. Portanto, uma estratgia que coordene essa atividade se faz necessria. Tal estratgia exige que a reengenharia seja considerada como

uma atividade de reconstruo. Sommerville (2007) destaca as principais atividades da reengenharia de software: Converso de Cdigo Fonte: Esta tcnica bastante utilizada em sistemas legados que necessitam de uma atualizao. O cdigo original convertido para uma verso atualizada da mesma linguagem ou para uma nova linguagem mais estruturada. Isso pode ser necessrio devido incompatibilidade ao sistema, mudana na poltica da organizao, ou apenas para adotar uma linguagem como padro para facilitar a manuteno do software.

Engenharia Reversa: Consiste no processo de analisar um sistema com a finalidade de criar sua representao de uma forma diferente, em um nvel mais alto de abstrao do que o cdigo fonte existente. Essa tcnica caracterizada pelas atividades retroativas do ciclo de vida, que partem de um baixo nvel de abstrao para um alto nvel de abstrao. Pode ser utilizado como parte do processo de substituio de um sistema ou a manuteno do mesmo.

Reestruturao de Cdigo: Nesta tcnica o cdigo pode ser reestruturado, automaticamente, para eliminar desvios incondicionais (como em goto) e violaes das construes de programao estruturada. No caso das estruturas de condies, pode ser utilizado para a simplificao, com o intuito de melhorar o entendimento do sistema. Algumas ferramentas so utilizadas para efetuar a anlise e a reestruturao do cdigo-fonte automaticamente. Porm, a reestruturao automtica pode apresentar algumas dificuldades como, por exemplo, a perda de comentrios, perda de correspondncia entre a documentao associada, dentre outros necessitando dessa forma uma melhor anlise antes de fazer o processo.

Modularizao de Cdigo: A modularizao caracterizada pelo processo de reorganizao de um programa de forma que artefatos relacionados so colocados em um mesmo mdulo. Este processo pode ser til para evitar que componentes relacionados fiquem dispersos na estrutura do programa. Dentre os tipos de mdulos existentes no processo podemos destacar: os mdulos funcionais que contm funes que realizam tarefas similares, os mdulos de abstrao de dados que agrupam as estruturas de dados, e por ltimo os mdulos de apoio a processos cujas funes apiam todo ou parte de um processo de negcio.

Reestruturao dos Dados: Alguns dos principais motivos pelos quais se aplicam a tcnica de reestruturao de dados a existncia de dados redundantes ou duplicados que so 6

armazenados em diferentes partes do programa, o aumento do volume de informaes que o sistema precisa tratar e a migrao da arquitetura. Neste procedimento feito a anlise e a reorganizao das estruturas de dados de um programa para melhorar a compreenso do programa e tornar mais simples seu controle. Ao tratarmos os dados de sistemas legados, enfrentamos problemas como: - Nomeao dos Dados: Os dados possuem nomes difceis de entender. - Tamanho de campos: O mesmo item pode ter tamanhos diferentes em diferentes mdulos do sistema construdo. - Organizao dos registros: Alguns registros que representam a mesma entidade podem ter formatos diferentes dentro do prprio sistema. - Inexistncia de um dicionrio de dados: A ausncia de um dicionrio de dados pode dificultar a reestruturao dos dados.

Recuperao da Documentao: A recuperao da documentao nada mais do que reescrever a documentao do sistema analisando os recursos disponveis. Nesta atividade tem-se trs opes: - Se o sistema estvel, as alteraes a realizar so inexistentes, este apenas mais um entre outros sistemas a serem analisados, logo no necessrio perder tempo na documentao do sistema antigo. - Se o sistema no se encontra completamente mudado, apenas parte dele est sendo analisado, no existe necessidade de documentar todo o sistema, apenas parte do mesmo. - Se o sistema crtico para o negcio como um todo, ento altamente recomendado que se produza documentao para todo o sistema antigo. Por esse motivo, esta etapa torna-se importante sendo necessrio analisar cada caso para atualizar a documentao com os recursos disponveis ou at mesmo redocumentar todo o sistema.

Fonte: Sommerville, 2007.

Figura 2: Processo de Reengenharia de software. As atividades da reengenharia no ocorrem necessariamente em uma sequncia linear. O modelo proposto por Pressman (2006), que compe o processo de Reengenharia de Software mostrado na Figura 3 permite que cada uma dessas atividades seja revisada separadamente em um ciclo, alm de terminar em qualquer perodo a partir do momento que uma atividade finalizada.

Fonte: Pressman, 2006.

Figura 3: Modelo do processo de Reengenharia de Software 8

Dentro de um contexto mais amplo da Reengenharia de Software, o processo de Engenharia Reversa bastante utilizado para desenvolver melhor compreenso de um sistema que apresenta documentao mal estruturada ou at mesmo inexistente. Para isto, existem diversas ferramentas disponveis que auxiliam em tal processo. As principais atividades de Engenharia Reversa, e sobre a utilizao dessas ferramentas para a criao das documentaes do projeto ser abordado nas subsees 2.1.1, 2.1.2 e 2.1.3.

2.1.1 Engenharia Reversa


Para Pressman (2006), a engenharia reversa de software o processo de anlise de um programa, um esforo para represent-lo em uma abstrao mais alta do que o cdigo-fonte. A engenharia reversa um processo de recuperao de projeto. As ferramentas de engenharia reversa extraem informaes sobre projeto procedimental, arquitetural e de dados de um programa existente. Este procedimento normalmente empreendido com o intuito de evoluir o sistema para melhorar a sua manuteno, obter uma melhor compreenso do seu funcionamento e das estruturas existentes. Em suma, o processo extrai informaes de projeto do cdigo-fonte sobre o processamento, interface e base de dados do sistema, quando no h documentao bem estruturada ou no se encontra no projeto. Em seguida, feita a derivao das especificaes lgicas dos componentes do sistema a partir de sua descrio fsica com auxlio de ferramentas automatizadas, processo o qual foi utilizado neste projeto. Atualmente esta rea desperta grande interesse no mercado de tecnologia, devido importncia de manter sistemas em bom funcionamento e o volume considervel de sistemas legados que necessitam evoluir. Pronuncia-se engenharia reversa porque, ao contrrio da tradicional engenharia de software, partimos do produto para a sua definio. Sommerville (2007), afirma que o resultado da engenharia reversa pode ser usado como uma entrada especificao de requisitos, para a substituio do programa, ou para ajudar na manuteno do programa. Dentro da Engenharia Reversa podemos definir duas categorias que caracterizam o processo: Entendimento do Programa e Visualizao de Cdigo. O entendimento do programa se sintetiza pelo conhecimento adquirido das informaes externas ao sistema. As observaes feitas sobre o sistema atravs de anlise do mesmo so acrescentadas de modo a 9

obter informaes consistentes com nvel mais alto de abstraes. A Visualizao de Cdigo ou Redocumentao o processo mais simples e o mais antigo da engenharia reversa. O intuito recuperar a documentao que possa estar mal estruturada ou at mesmo inexistente. O processo realizado atravs da criao de vises adicionais, especialmente vises grficas (diagramas), que especificam as informaes do sistema antes no criadas no processo original de engenharia de software. Na figura 4, apresentada a forma como Sommerville (2007), visualiza o processo de engenharia reversas, cujas informaes so vinculadas ao cdigo-fonte do sistema e mantidas em um grafo direcionado aps anlise do mesmo, atravs de ferramentas especficas para este procedimento.

Fonte: Sommerville, 2007.

Figura 4: Processo de engenharia reversa

Pressman (2006), afirma que antes das atividades se iniciarem, o cdigo fonte deve ser reestruturado, voltado s construes de programao estruturada. Isso faz com que o cdigo fique mais claro e fornea base para as atividades da engenharia reversa. A figura 5 mostra o processo de engenharia reversa segundo o autor.

10

Fonte: Pressman, 2006.

Figura 5: Processo de engenharia reversa

Pressman (2006) afirma que, para extrair informaes de projeto, de um cdigo-fonte, depende do nvel de abstrao, da interatividade, da direcionalidade do processo, e da completao que devem ser tratados. O nvel de abstrao de um processo refere-se complexidade das informaes disponveis de um projeto que podem ser extradas do cdigo fonte. O ideal que o nvel de abstrao seja o mais alto possvel, permitindo um melhor entendimento por parte dos responsveis pela manuteno. A interatividade refere-se ao grau que o usurio est integrado com as ferramentas automatizadas para a criao de um processo eficaz de engenharia de software. Na grande maioria, medida que o nvel de abstrao aumenta a interatividade tambm precisa aumentar, pois caso contrrio, a completeza da documentao ser depreciada. Com referncia direcionalidade, o processo de engenharia reversa apresenta duas direes. Se for unidirecional, todas as informaes retiradas do cdigo-fonte sero disponibilizadas ao engenheiro de software para que possam ser utilizadas em qualquer

11

atividade de manuteno. Caso seja bidimensional, as informaes sero fornecidas ferramenta de reengenharia, que por sua vez ir reestruturar o antigo sistema. Conforme diz Pressman (2006), a completao de um processo de engenharia reversa refere-se ao nvel de detalhamento que fornecido em um nvel de abstrao, e quanto maior o nvel de abstrao, menor ser o seu nvel de detalhamento. Quanto mais frequentemente forem realizadas anlises por quem est aplicando a engenharia reversa, maior ser a completao encontrada.

2.1.2 Documentao de Software


O processo de reengenharia vem aprimorando as tcnicas e ferramentas constantemente, em busca da qualidade e produtividade nas atividades de manuteno de software. Sendo assim, a documentao de software um aspecto importante e tem grande relevncia, pois parte determinante para o melhor entendimento da funcionalidade atual do processo, podendo influenciar tanto na qualidade quanto na produtividade. A inexistncia de uma documentao pode colocar em risco a manuteno e o desenvolvimento do software. Conseguir encontrar uma estimativa da quantidade de documentao gerada e identificar na prtica quais so os artefatos de software mais utilizados na fase de manuteno de fundamental importncia. Segundo Forward (2002), o papel da documentao em um ambiente de engenharia de software comunicar a informao ao seu pblico e incutir conhecimentos do sistema que ele descreve. A documentao deve permitir o desenvolvimento eficiente de software futuro, sem impedir o progresso atual. Ambler (2004), afirma que um documento qualquer artefato externo ao cdigo fonte cujo principal objetivo seja apresentar a informao de uma maneira persistente. Para o autor, existem duas razes para documentar um sistema, uma serve para auxiliar a comunicao durante o projeto e outra para auxiliar o entendimento nas atividades de manuteno do sistema. Antes de qualquer incio de projeto, faz-se necessrio um planejamento da documentao a ser criada e a escolha de uma ferramenta adequada, pois todo o processo de manuteno possui etapas a serem seguidas para que a documentao seja de entendimento fcil e consistente com o cdigo-fonte do sistema analisado. Para isto, o processo de

12

manuteno deve concentrar-se em torno de toda a configurao do software e no somente nas modificaes do cdigo-fonte. Diversos estudos sobre documentao de software foram publicados com o intuito de solucionar problemas com relao padronizao de documentao, documentao desatualizada e de baixa qualidade, falta de documentao de sistema e processos de documentao dispendiosos. Alguns desses trabalhos indicam solues simples, com o apoio de ferramentas que so utilizadas para este propsito. No item 2.1.3 a seguir, ser abordado o uso dessas ferramentas.

2.1.3 Ferramentas CASE para a Reengenharia de Software


Ferramentas CASE (Computer-Aided Software Engineering), so sistemas de software projetados para apoiar as atividades de rotina no processo de software, tais como edio de diagramas de projeto, verificao de consistncia do diagrama e manter controle dos testes de programa que tenham sido executados (Sommerville, 2004). Segundo o autor, a tecnologia de ferramentas em ambientes CASE tem levado a melhorias significativas no processo de software. Essas tecnologias fornecem uma ampla gama de diferentes tipos de programas utilizados para apoiar as atividades de processo de software, de suporte automatizado para atividades como avaliao de requisitos, depurao e testes. Silva e Videira (2001) definem

(...) CASE como um conjunto de ferramentas informticas que auxiliam o engenheiro de software no desenvolvimento de aplicaes, com o objetivo de diminuir o respectivo esforo e complexidade, de melhorar o controle do projeto, de aplicar sistematicamente um processo uniformizado e de automatizar algumas actividades, nomeadamente a verificao da consistncia e qualidade do produto final e a gerao de artefactos (Silva e Videira, 2001: 397).

Com a evoluo das tcnicas de reengenharia de software, e consequentemente o aumento da complexidade da administrao do processo de software, diversas ferramentas foram desenvolvidas e aprimoradas com a finalidade de auxiliar e facilitar a execuo dos processos de manuteno. Essas ferramentas do suporte recuperao de modelos em uma notao padro, como a linguagem unificada de modelagem (UML) assunto tratado na seo 2.2 , a partir do cdigo fonte. A grande maioria utilizada na etapa de engenharia

13

reversa do sistema para criar essas documentaes de forma gil. O objetivo neste caso diminuir o custo ao final do processo facilitando as correes e a documentao do sistema. De acordo com a disponibilidade e preciso de informaes sobre o software, existem os tipos de dados a serem extrados, porm em diferentes nveis de detalhamento. Para a realizao de tal procedimento faz-se necessrio uma variedade de abordagens e habilidades. A fim de se atingir tal compreenso em sistemas de software, imprescindvel que se utilize ferramentas que auxiliem na aquisio deste conhecimento. Como toda e qualquer ferramenta especfica para o procedimento da engenharia reversa, encontramos algumas vantagens e desvantagens no uso das mesmas (Silva e Videira, 2001).

Vantagens: - A automatizao das atividades correspondente ao nvel da gerao de cdigo e de documentao (diagramas UML); - Uniformizao do processo de desenvolvimento das atividades realizadas, e dos artefatos produzidos; - Reutilizao de vrios artefatos ao longo do mesmo projeto, e entre projetos, promovendo o aumento da produtividade; - Diminuio do tempo de desenvolvimento, recorrendo gerao automtica de diversos artefatos do projeto atravs das ferramentas.

Desvantagens: - Limitaes na flexibilidade das documentaes; - Incompatibilidades encontradas em relao aos sistemas e ferramentas de engenharia reversa, como linguagens suportadas, plataforma utilizada; - Poucas ferramentas recuperam de uma maneira satisfatria os detalhes importantes do cdigo fonte, necessitando assim de uma anlise mais detalhada por parte do engenheiro de software.

Atualmente segue-se um padro determinado para tratar de caractersticas de ferramentas de reengenharia. Pode-se dividir as ferramentas de engenharia reversa em duas diferentes categorias: estticas e dinmicas. As ferramentas de anlise estticas utilizam um cdigo fonte de programa como entrada e avaliam as ligaes entre as estruturas de dados, 14

estruturas de controle, componentes de programa, o fluxo lgico e outras caractersticas. Ao permitir que o desenvolvedor tenha a visualizao do programa, tais ferramentas melhoram expressivamente a produtividade da engenharia e a qualidade das alteraes que so realizadas. Existem inmeras ferramentas CASE no mercado, tanto software livre como proprietrias. Porm o conceito de uso o mesmo, pois todas, hoje, usam a UML como base para modelagem. Algumas das principais ferramentas de engenharia reversa disponveis no mercado so, a Enterprise Architect, a Rational Rose, a System Architect (Silva e Videira, 2001), (Guedes, 2004) e outras capazes de converter o cdigo fonte na linguagem de programao Java para diagramas de classe e outros diagramas em notao UML. Diferentemente das ferramentas estticas, as ferramentas de anlise dinmica monitoram o software quanto sua execuo e usam os dados obtidos durante a monitorao para estabelecer um modelo comportamental do sistema. Essas ferramentas apresentam importantes informaes aos engenheiros de software que precisam manter sistemas embutidos ou software de tempo real, apesar de ser a minoria no mercado. Na Tabela 1, apresentam-se algumas caractersticas das ferramentas mais utilizadas no processo de engenharia reversa atualmente e sua estrutura com relao a diagramas funcionais.

15

Tabela 1: Comparativo entre as ferramentas CASE

Fonte: Disponvel em http://www.oatsolutions.com.br/artigos/Comparativo_CASES_v3.pdf

16

Visto que todas essas ferramentas possuem caractersticas especficas, cabe ao engenheiro de software escolher qual ferramenta a mais adequada ao processo a ser realizado pela engenharia reversa. Existem tambm timas ferramentas como a ArgoUML, a FUJABA, dentre outras que possuem licena livre, e so bastante utilizadas por possurem suporte criao de diagramas UML1. Neste trabalho, os diagramas foram estruturados no software Enterprise Architect. Embora a ferramenta Enterprise Architect no oferea uma licena livre, ela uma das ferramentas que mais oferecem recursos compatveis com a verso mais recente da UML. Alm de uma interface intuitiva, o software possui sada de documentao flexvel, gerao de relatrios e documentao com todos os detalhes. O EA oferece tambm suporte gerao e engenharia reversa de cdigo fonte para vrias linguagens de programao, como C++, C #, Java, Delphi, Visual Basic, PHP entre outras. Apesar de no dispor de uma edio para a comunidade, a empresa que produz a Enterprise Architect (Sparx Systems), disponibiliza uma verso trial, que pode ser utilizada por cerca de 60 dias2. No item 2.2, enfatiza-se um pouco sobre a importncia da modelagem de um sistema, a padronizao e caractersticas dos diagramas UML. Mais especificamente os diagramas que foram utilizados na criao da documentao do projeto como Casos de Uso (subitem 2.2.1) e diagramas de Classe (subitem 2.2.2).

2.2

UML Linguagem de Modelagem Unificada


O intuito de se modelar um sistema de software envolve fatores complexos como

prototipao, levantamento e anlise de requisitos, prazos, custos, documentao, manuteno e reusabilidade, (Guedes, 2004). Tal necessidade baseia-se em princpios para obter o esclarecimento de problemas de desenvolvimento e manuteno de sistemas. Neste contexto, uma linguagem padro foi criada para auxiliar no desenvolvimento de um sistema, a chamada linguagem de modelagem unificada (UML), que se tornou pea fundamental no processo de modelagem. A construo da UML teve como principais autores do processo, Grady Booch, James Rumbaugh e Ivar Jacobson. De acordo com estes:

1 2

Informaes das ferramentas disponveis no site: http://case-tools.org/tools/ Disponvel no site: http://www.sparxsystems.com.au.

17

Como principais autores dos mtodos Booch, OOSE (Object-Oriented Software de Jacobson) e OMT (Object-Modeling Technique de Rumbaugh), nos sentimos motivados a criar uma linguagem unificada de modelagem por trs motivos. Primeiro, nossos mtodos j estavam evoluindo um em direo ao outro de maneira independente. Fazia sentido continuar essa evoluo em conjunto e no separadamente, eliminando a possibilidade de diferenas casuais e desnecessrias que apenas confundiriam os usurios. Segundo, a unificao dos mtodos traria alguma estabilidade ao mercado orientado a objetos, permitindo que os projetos tivessem como base uma linguagem madura de modelagem e que os produtores de ferramentas fornecessem recursos teis. Terceiro, espervamos que nossa colaborao proporcionasse aprimoramentos para os trs mtodos anteriores, auxiliando-nos a captar as lies aprendidas e lidar com problemas que nenhum de nossos mtodos conseguiria manipular de maneira adequada at ento. (Booch; Jacobson e Rumbaugh, 2000: XVII).

Assim aps iniciarem a unificao, os trs amigos, como ficaram popularmente conhecidos, estabeleceram trs objetivos para a realizao do trabalho:

1. Fazer a modelagem de sistemas, do conceito ao artefato executvel, com a utilizao de tcnicas orientadas a objetos. 2. Incluir questes de escala, inerentes a sistemas complexos e de tarefas crticas. 3. Criar uma linguagem de modelagem a ser utilizada por seres humanos e por mquinas. (Booch; Jacobson e Rumbaugh, 2000: XVII).

De uma forma geral, podemos conceituar a UML como sendo uma linguagem para visualizao, especificao, construo e documentao de artefatos de um sistema em desenvolvimento ou j existente. De acordo com Bezerra (2000), a UML seria uma linguagem composta de elementos grficos empregados na modelagem capaz de representar os conceitos do paradigma da orientao a objetos. Nesta linguagem so definidos alguns elementos grficos que permitem construir diagramas utilizados para exemplificar diferentes perspectivas de um sistema. Esses elementos grficos por sua vez, possuem uma sintaxe, ou seja, uma forma prestabelecida de desenhar o componente, e uma semntica, as quais definem em que se constitui o elemento e para qu ser empregado. Por serem extensveis, a sintaxe e a semntica permitem que a UML se adque as caractersticas de cada projeto de desenvolvimento. Aps o surgimento da UML diversas melhorias foram realizadas com o objetivo de tornar a linguagem mais simples e til, (Booch; Jacobson e Rumbaugh, 2000: XVI). Em julho

18

de 1997, a UML foi aprovada como padro pelo Object Management Group OMG3, apresentando uma verso nova da linguagem. Recentemente, a UML foi substituda pela verso 2.0. Esta nova verso traz grandes novidades em relao estrutura geral da linguagem principalmente com relao nomenclatura de alguns diagramas e a possibilidade de se desenvolver perfis particulares a partir da UML. A documentao oficial da UML pode ser consultada no site da OMG (Guedes, 2004). Independentemente do processo de desenvolvimento e linguagem de programao estabelecida, a UML pode ser utilizada para a modelagem de sistemas, o que a caracteriza enquanto importante ferramenta, j que diversos sistemas de software necessitam de abordagens de desenvolvimento diferentes. Para se utilizar efetivamente a linguagem unificada de modelagem, necessrio estabelecer um modelo conceitual da linguagem, cuja compreenso dos blocos bsicos da UML, as regras que definem como os blocos devem ser associados e alguns mecanismos bsicos que se aplica a toda linguagem, fundamental. Durante o desenvolvimento de um sistema de software, os artefatos grficos realizados so determinados por meio do emprego de diagramas da UML, como afirma Guedes, uma espcie de desenhos que permitem a visualizao de um sistema sob diferentes perspectivas. A UML apresenta atualmente treze diagramas: diagrama de classes, diagrama de objetos, diagrama de casos de uso, diagrama de sequncias, diagrama de colaboraes (tambm chamado de comunicaes), diagrama de grficos de estados, diagrama de atividades, diagrama de componentes, diagrama de estrutura composta, diagrama de pacotes, diagrama de interao geral, diagrama de implantao e por fim o diagrama de tempo. A unio desses diagramas fornece mltiplas vises do sistema a ser modelado sob diversos aspectos. Esses diagramas por sua vez podem ser divididos em duas categorias: Diagramas estruturais e diagramas comportamentais como mostrado na figura 6.

O OMG um consrcio internacional de empresas que define e retifica padres na rea da orientao a objetos. Maiores informaes acessar: www.omg.org

19

Fonte: http://www.omg.org/spec/UML

Figura 6: Classificao dos diagramas UML

Para o presente estudo analisa-se somente os diagramas de classes e diagramas casos de uso a fim de especificar a estrutura da interface do CorteBi.

2.2.1 Diagramas de Casos de Uso


O Diagrama de Casos de Uso o diagrama mais abstrato e informal da UML, porm de fundamental importncia para a modelagem, pois especifica o conjunto de comportamentos que o sistema deve fazer e descreve as interaes tpicas entre usurios e sistema. Os autores Booch, Jacobson e Rumbaugh (2000) especificam um caso de uso como sendo o comportamento de um sistema ou parte de um sistema que descreve um conjunto de seqncias de aes, incluindo diferentes aes realizadas pelo sistema para produzir um resultado observvel do papel de um ator. Sendo utilizado principalmente no incio da modelagem do sistema na etapa de levantamento e anlise de requisitos, o diagrama de Casos de Uso constantemente modificado durante todo o processo de engenharia podendo servir de base para outros diagramas. Por meio de linguagem simples e de fcil compreenso, os diagramas de casos de 20

uso so escritos baseados nos atores, nos sistemas e apresentam de forma geral um cenrio que mostra as funcionalidades do sistema do ponto de vista do usurio (Guedes, 2004). Os atores de sistema representam os papis desempenhados pelos usurios que podem utilizar, de alguma maneira, as funes e servios de um programa. Ou seja, um ator pode ser qualquer elemento que possa interagir com o sistema. J os casos de uso so definidos como cenrios, onde os atores podem utilizar das funcionalidades do sistema. De forma geral referem-se s funes, servios e tarefas que expressam e documentam comportamentos para o sistema analisado. Na Figura 7 apresenta-se um exemplo de diagrama de Casos de Uso.

Figura 7: Exemplos de atores de um sistema

A UML define diversos tipos de relacionamentos para o modelo de Casos de Uso. Tambm chamado de associaes, elas representam as interaes entre os atores que fazem parte do sistema, entre os atores e o sistema e relacionamento entre casos de uso. Tais relacionamentos podem ser denominados como incluso, extenso e generalizao.

Dependncia ou incluso A dependncia ou incluso um relacionamento que utilizado quando existe uma rotina ou ao comum a mais de um Caso de Uso, ou seja, aplicada somente entre dois Casos de Uso. Este relacionamento indica a necessidade em que a execuo de um obriga a execuo de outro, porm o inverso no valido. Esse tipo de relacionamento representado com setas tracejadas apontando o item do qual o outro depende juntamente a um nome de especificao <<include>>.

21

Associao ou extenso Associao ou extenso um relacionamento estrutural que descreve cenrios ou situaes opcionais de um Caso de Uso. Este relacionamento utilizado para modelar situaes em que diferentes seqncias de interaes podem ser inseridas em um Caso de Uso, (Bezerra, 2002). Cada uma dessas sequncias s ocorre sobre certas condies cuja execuo depende do ator. Da mesma forma que o relacionamento de dependncia a extenso tambm representada por uma seta, porm o esteretipo utilizado neste caso determinado pela palavra <<extend>>.

Generalizao ou Especializao A generalizao um relacionamento entre casos de uso na qual existem dois ou mais Casos de Uso que possuem caractersticas semelhantes. Este relacionamento permite a herana dos objetos da classe-filha aos atributos e operaes da classe-me. Geralmente as classes-filhas possuem tambm atributos e operaes individuais, no encontradas na classeme. Uma generalizao representada por uma linha slida apontada para a classe-me, (Booch, Jacobson e Rumbaugh, 2000). Na Figura 8 temos um exemplo de diagrama de Casos de Uso que mostra todos os tipos de relacionamentos descritos anteriormente.

Fonte: Baseado em Booch, Jacobson e Rumbaugh, (2000)

Figura 8: Exemplo de relacionamentos em casos de Uso

22

2.2.2 Diagramas de Classes


Sendo o mais importante e tambm o mais utilizado, apresentando um conjunto tanto de classes quanto de interfaces e colaboraes, o diagrama de classes encontra-se com mais assiduidade entre sistemas de modelagem orientados a objetos e abrange uma viso esttica da estrutura do sistema. Como o prprio nome diz, este diagrama define a estrutura das classes utilizadas pelo sistema, determinando os atributos e mtodos possudos pelas classes, alm de estabelecer como as classes se inter-relacionam e trocam informaes entre si. O diagrama de classe considerado hoje como base para a maioria dos demais. De acordo com Guedes (2004) a estrutura de uma classe na linguagem UML representada como um retngulo que possui trs divises. A primeira diviso representa o nome da classe, a segunda parte armazena os atributos e seus tipos de dados e finalmente e terceira e ltima diviso representa a lista dos mtodos da classe (ver figura 9).

Figura 9: Exemplo de uma classe Um diagrama de classes pode oferecer trs perspectivas, cada uma para um tipo de observador diferente, (Booch, Jacobson e Rumbaugh, 2000). So elas: Conceitual: Representa os conceitos do domnio em estudo. uma perspectiva geralmente destinada ao cliente. Especificao: Tem o foco nas principais interfaces da arquitetura, nos principais mtodos, e no como eles iro ser implementados. uma perspectiva destinada as pessoas que no precisam saber detalhes de desenvolvimento, tais como gerentes de projeto. Implementao: Aborda vrios detalhes de implementao, tais como navegabilidade, tipo dos atributos, etc. uma perspectiva destinada ao time de desenvolvimento. 23

Os relacionamentos entre as classes possuem o objetivo de compartilhar informaes e colaborarem umas com as outras de forma que permitem a execuo dos processos existentes no sistema. Dentre os relacionamentos podemos citar as associaes que se classificam em unria, binria, ternria, agregao e composio. As associaes denominadas unrias ocorrem quando existe um relacionamento de uma classe para consigo mesma. Dentro da associao unria ou reflexiva existe a multiplicidade que determina qual das classes envolvidas em uma associao fornece informaes para as outras, alm de especificar o nvel de dependncia entre essas classes (Tabela 2). As denominadas binrias ocorrem quando so identificados relacionamentos entre apenas duas classes. J as ternrias so associaes que interligam mais de duas classes. Todas as trs associaes j citadas so representadas por uma linha slida. A agregao um tipo especial de associao, pois tenta demonstrar uma relao de complementao entre objetos associados. Sua representao em uma linha slida, porm com um losngulo na extremidade da classe que contm essa relao. Uma composio constitui de uma variao da associao de agregao no qual representa um vnculo mais forte entre os objetos associados Sua representao da mesma forma que na agregao, porm com o losngulo preenchido, (Guedes, 2004).

Tabela 2: Exemplos de multiplicidade

Multiplicidade 0..1 1..1 0..* * 1..* 2..6


Fonte: Guedes, 2004.

Significado Indica que nenhuma ou apenas uma instncia da classe se relaciona com as instncias de outra classe Indica que apenas um objeto da classe se relaciona com os objetos de outra classe. Indica que pode ou no haver instncias da classe participando do relacionamento. Indica que muitos objetos da classe esto envolvidos no relacionamento. Indica que h pelo menos um objeto no relacionamento, podendo tambm haver muitos envolvidos. Indica que existem pelo menos duas instncias que esto envolvidas no relacionamento, mas que podem ser no mximo seis.

Existe tambm um tipo especial de relacionamento, porm muito similar associao chamado de especializao que por sua vez identificam classes-mes e classes-filhas. Existe tambm o relacionamento de dependncia que no comum ser encontrado nos diagramas de 24

classe, e por fim o relacionamento nomeado de realizao que um tipo especial que possui caractersticas de generalizao e dependncia, (Guedes, 2004). Na figura 10 apresentamos um exemplo de diagramas de classes.

Fonte: Baseado em Guedes (2004).

Figura 10: Exemplo de diagrama de classes

2.3

O Problema de Corte de Estoque Bidimensional


Inmeras pesquisas relacionadas ao problema do corte de estoque vm sendo

realizadas h muitas dcadas. Por volta da dcada de 60, foram publicados diversos trabalhos importantes na rea, tendo grande repercusso o estudo do problema de corte de estoque de Gilmore e Gomory (1961), (1963) e (1965). Os trabalhos desses autores apresentam as modelagens e mtodos de soluo mais utilizados para resoluo destes problemas at os dias de hoje. Dentre as atividades industriais do setor moveleiro, o processo de corte de matriaprima apresenta-se como um dos mais relevantes, pois a maneira na qual se aplica, determina a quantidade de perdas de material e o custo final da produo. Na indstria de mveis, a matria-prima utilizada (objetos) possui formato retangular, cujas peas menores (itens) so 25

obtidas por meio de processos de corte, originando o produto final. As combinaes dessas peas menores indicadas de maneira precisa dentro da pea padro, respeitando um conjunto de restries do processo de corte, so denominadas padres de corte. Para representar matematicamente um padro de corte pode se usar um vetor m-dimensional tal que cada componente ai representa o nmero de itens do tipo i includos no padro (m representa o nmero de itens considerados no problema). Encontrar a melhor maneira como estes objetos sero cortados para estabelecer padres de corte viveis, um desafio para as empresas do setor. Alm deste problema, existe tambm uma preocupao para que a quantidade de padres distintos seja a menor possvel, uma vez que, cada novo padro a ser utilizado, necessita de preparao do equipamento de corte, consumindo recursos como mo de obra e tempo, que influenciam os custos de produo. O problema de otimizao conhecido como Problema de Corte de Estoque (Cutting Stock Problems) (Figueiredo, 2005), consiste em determinar a combinao desses padres de corte de forma a atender uma demanda pr-especificada dos itens e que satisfaam a critrios pr-estabelecidos, como minimizar o nmero de objetos cortados e/ou diminuir o custo final de produo. Podemos considerar tambm diversos outros fatores que podem influenciar nos dados ou nas restries, como por exemplo, nmero de objetos diferentes disponveis em estoque, tipos de cortes permitidos, nmero de objetos que podem ser cortados pela seccionadora simultaneamente, tempo de produo de uma pea, entre outros. Aplicaes deste problema podem ser encontradas em indstrias moveleiras, vidraarias, indstrias metalrgicas, dentre outras. Em meio aos processos de corte possveis de serem utilizados em diferentes ramos industriais, temos o corte unidimensional, o bidimensional e o tridimensional. No processo de corte unidimensional, apenas uma das dimenses do objeto relevante. Um exemplo de padro de corte unidimensional bastante utilizado o processo de corte de barras de ao e de bobinas de papel como demonstrado na Figura 11.

26

Figura 11: Exemplo padro de Corte Unidimensional

No processo de corte Bidimensional, duas dimenses so relevantes (comprimento x largura). Podemos citar como exemplo os cortes de madeira, vidro, placas de metal como exemplificado na Figura 12.

Figura 12: Exemplo de padro de Corte Bidimensional

27

A parte do objeto cortado, cujas dimenses no foram predenidas (parte escura das figuras 11 e 12) denominada perda4 total. No processo de corte tridimensional, as trs dimenses so relevantes (largura, altura e comprimento). Basicamente, consiste em arranjar itens espaciais de forma a maximizar a rea utilizada no empacotamento demonstrado na Figura 13.

Figura 13: Exemplo de padro de Corte Tridimensional

Para o caso da pesquisa em estudo, especificamente voltado produo moveleira (Cavali, 2004; Cavali e Rangel, 2004; Figueiredo, 2005; Rangel e Figueiredo, 2005), o tipo de corte utilizado o chamado corte bidimensional, assim caracterizado por envolver em seus processos as duas dimenses da matria-prima, ou seja, largura e comprimento. Ao fabricar materiais como camas, armrios, cabeceiras, entre outros, uma empresa de mveis tem como recurso de matria-prima grandes placas de madeira e necessita encontrar a melhor maneira de cort-las de modo a economizar a quantidade de objetos utilizados. Devido s diferentes medidas de matria-prima que podem ser trabalhadas, a quantidade e a variedade de retngulos so elevadas e consequentemente a obteno desses padres de corte uma tarefa desafiadora. O principal mtodo utilizado para resolver o problema de corte de estoque baseia-se no mtodo simplex com gerao de colunas para resolver tanto caso unidimensional, quanto o

No processo de corte, considera-se "perda" todo tipo de retalho adivindo do processo de corte que no tem dimenso adequada para ser utilizado para produzir itens no futuro. Ao contrrio das perdas, as sobras de material podem ser estocadas para futura utilizao. Mais informaes veja Arenales (2005).

28

bidimensional (Teodoro, 2003), o qual ser analisado no item 2.3.1. Para modelar o problema matematicamente, suponha que uma fbrica possui em estoque, uma quantidade suficiente de objetos de comprimento L e largura W para produzir um conjunto de m itens retangulares menores de comprimento li, largura wi e que atendam a uma demanda especificada di. Suponha que so conhecidos todos os possveis os padres de corte viveis. Seja n o nmero total de padres de corte, toma-se como padro de corte Aj, sendo j=1...n, um vetor mdimensional representado por nmeros no negativos e tal que cada elemento aij representa o nmero de itens do tipo i no padro de corte j:

(2.1)

Considerando o critrio de minimizao do custo total, supondo que os objetos disponveis em estoque sejam suficientes para atender a demanda dos m itens, a modelagem do problema pode ser feita conforme a expresso 2.2 (Arenales, 2004):

(2.2)

No modelo (2.2) a varivel de deciso xj representa o nmero de objetos cortados de acordo com o padro de corte j. As restries do problema garantem que as demandas de cada item sejam atendidas exatamente. Temos tambm o caso em que o problema de corte de estoque pode ser resolvido considerando a produo de itens em excesso, ou mesmo dentro de 29

um determinado intervalo (demanda flexvel). Nestes casos a produo de itens pode ser maior ou menor em relao demanda determinada.

2.3.1 Mtodo Simplex com Gerao de Coluna


Uma das dificuldades encontradas no problema de corte de estoque o nmero grande de padres de corte possveis quando se trata de problemas de grande porte. Para resolvermos este problema utilizamos ento o Mtodo Simplex com gerao de colunas. O mtodo Simplex foi criado por Geoge B. Dantzig, no ano de 1947 com o intuito de resolver com eficincia os problemas de programao linear, fornecendo em um nmero finito de iteraes a soluo tima ou a inexistncia de uma soluo tima para o problema (Teodoro, 2003). Diversos autores publicaram trabalhos importantes na rea com o intuito de aprimorar o mtodo Simplex; os que tiveram grande reconhecimento pelas suas pesquisas na rea foram Gilmore e Gomory (1961), que propuseram o mtodo Simplex com gerao de colunas para resolver o problema de corte de estoque unidimensional sem as restries de integralidade. Este mtodo era capaz de superar as dificuldades computacionais bsicas dos problemas de corte (inmeros padres de corte), pois a cada iterao apenas alguns padres de corte so armazenados e um nmero relativamente pequeno era gerado durante a resoluo. Posteriormente, o trabalho realizado no ano de 1963, Gilmore e Gomory propuseram uma adaptao do mtodo anterior por meio de um estudo de caso em uma pequena empresa de corte de papel. O algoritmo adaptado pode tambm ser aplicado no corte de tubos de metal e ao. O mtodo Simplex funciona com um subconjunto inicial de variveis em que a cada interao, busca-se uma nova varivel tendo por objetivo melhorar o valor da soluo final. A deciso acerca da melhor varivel a ser utilizada na base, se d por meio de anlise geral entre todas as variveis disponveis. Em cada iterao, uma coluna gerada no passo em que se decide se h, ou no uma varivel candidata a ser substituda na base. O processo de gerao de colunas continua at que a coluna gerada tenha custo relativo no negativo. Esta tcnica utilizada em sistemas especializados para resolver problemas de programao linear, em que invivel gerar todas as colunas para posteriormente aplicar o mtodo simplex. Normalmente o nmero de variveis envolvidas no problema de otimizao muito maior que a quantidade de restries impostas. Portanto, com a aplicao da tcnica, 30

o Simplex trabalha com apenas uma soluo bsica vivel inicial e no utiliza mais do que uma matriz quadrada para realizar os clculos, onde o nmero de colunas igual ao nmero de restries. A vantagem da utilizao do mtodo de gerao de colunas que no h necessidade de armazenar todas as colunas do problema antes de aplicarmos o mtodo, evitando desperdcio de memria e tempo. Sendo assim, podemos trabalhar com novas colunas conforme a necessidade. O fato de se resolver o problema linear atravs do mtodo de gerao de colunas no implica, necessariamente, uma soluo tima inteira. A soluo inteira tima exata do problema pode ser obtida pelo mtodo Branch and price (Ramificao, Poda e gerao de colunas) que consiste em pegar a soluo fracionria e escolher, iterativamente, uma das variveis com valor fracionrio para dividir o problema em dois subproblemas, um onde a varivel escolhida limitada superiormente pelo valor fracionrio arredondado para baixo e outro onde a varivel escolhida limitada inferiormente pelo valor fracionrio arredondado para cima, o processo repetido de forma iterativa, e para evitar a enumerao completa do conjunto de solues so usados limitantes superiores e inferiores para o valor timo. O processo de gerao de colunas utilizado na soluo de cada subproblema5. Para se obter uma soluo vivel inteira para o problema original foram propostas heursticas de arredondamento. Os autores Gilmore e Gomory, propuseram pegar os tetos das solues fracionrias, ou seja, fazer xi = [ x i *], i = 1, K , m, para se obter uma soluo inteira aproximada. Este procedimento, no entanto, pode resultar em solues que extrapolam a demanda dos itens (Mosquera, 2007). Outro mtodo, chamado de BRURED, foi proposto por Wscher (1996). A finalidade do mtodo diminuir o excesso de produo causado pela obteno da soluo pelo maior inteiro. So dados maiores detalhes sobre o mtodo BRURED includo no CorteBi no item 3.3.1.

2.3.2 Gerao de Padres de Corte Bidimensionais


Um padro de corte possui vrias caractersticas que podem ser determinantes na avaliao de sua qualidade, em se tratando de uma determinada indstria. importante ressaltar que para a obteno desses padres de corte, necessrio que o processo de corte respeite um conjunto de restries impostas, geralmente relacionadas ao tipo de indstria e
5

Disponvel em http://www.coin-or.org/

31

aos equipamentos de corte que sero utilizados. Dentre elas podemos destacar: O estgio de corte e o corte guilhotinado. Existem alguns padres de corte que apresentam caractersticas especficas com relao ao nmero de itens cortados e suas medidas. Um padro de corte que produza apenas um tipo de item chamado padro de corte homogneo, isto , o vetor associado a este padro tem apenas uma das m coordenadas no nula. Quando o nmero de vezes que o item aparece no padro de corte homogneo o maior possvel, este chamado de padro homogneo maximal, (Mosquera, 2007).

Corte Guilhotinado e No Guilhotinado

Quando se trata de mquinas seccionadoras em indstrias moveleiras, os padres de corte precisam seguir certa restrio com relao rotao dos objetos. Pois, no possvel a realizao da rotao no momento em que a serra est no meio do objeto. Para isso utilizado o padro de corte guilhotinado. Segundo Morbito e Arenales (1996), um corte dito guilhotinado ortogonal, ou simplesmente guilhotinado, quando feito paralelamente a um dos lados de um objeto retangular e o divide em dois novos retngulos. Um padro de corte composto apenas por cortes guilhotinados deve ser chamado de padro de corte guilhotinado. Na Figura 14 so exibidos o tipo de corte guilhotinado e o no-guilhotinado respectivamente.

Fonte: Mosquera, 2007.

Figura 14: Exemplos de Padres de corte guilhotinado e no-guilhotinado

32

Estgio de Corte

Os padres de corte guilhotinados podem ser classificados de acordo com o nmero de estgios de corte para a obteno de todos os itens que nele esto alocados. Em um estgio, os cortes guilhotinados so processados pela serra e havendo mais cortes guilhotinados a serem realizados (agora perpendiculares), o objeto ou a serra so girados, dando origem a um novo estgio. Para Arenales et al. (2004) o nmero de estgios de um padro de corte guilhotinado o nmero de vezes que o objeto deve ser rotacionado de 90 para que os cortes guilhotinados sejam efetuados. Algumas mquinas de corte realizam apenas o corte por estgios alterando as rotaes de seus objetos. Em cada estgio a direo dos cortes perpendicular ao estgio anterior.

Fonte: Adaptado de Lemos, 2005.

Figura 15: Estgios de corte em um padro

Uma forma simples de conseguirmos visualizar o corte por estgios seria atravs do corte em linha paralela. Os nmeros na Figura 15 indicam a quantidade de estgios (rotao) que o objeto a ser cortado necessitou para obter os itens indicados na figura.

Os padres de corte 2-estgios so de grande interesse para as indstrias moveleiras e esto sendo bastante utilizados, visto que a placa ou a serra so giradas apenas duas vezes para se extrair todas as peas. A indstria de mveis na qual visitamos, prefere o uso dos tipos de padres de corte guilhotinado em 2-estgios devido facilidade de manuseio e maior eficincia. Porm, na prtica a indstria trabalha em sua maioria com padres de at trs 33

estgios, pois estes apresentam um melhor aproveitamento da matria-prima e consequentemente diminui o custo final (Ver Figura 16).

Fonte: Martins, 2010.

Figura 16: Padres de corte em trs estgios

2.4

Estrutura e evoluo do Sistema CorteBi


O sistema CorteBi um sistema para resolver o problema de corte de estoque

bidimensional que foi desenvolvido inicialmente por Perin e Rangel (1989). Aps a sua criao, o sistema passou por diversas atualizaes tendo como perspectiva adapt-lo para uso como apoio tomada de decises em empresas de pequeno e mdio portes do setor moveleiro. Sempre visando melhoria da qualidade de suas solues, novas funcionalidades importantes foram includas para oferecer resultados cada vez melhores ao usurio final. Uma particularidade importante do CorteBi, que ele foi desenvolvido como um software livre, tornando-se uma alternativa aos softwares proprietrios e permitindo que empresas de pequeno e mdio porte melhorem seu processo produtivo. Atualmente esse sistema se encontra em sua quarta verso, agora com uma nova interface grfica com usurio (GUI6) de fcil manipulao e conexo com banco de dados. A evoluo do sistema se iniciou com Cavali e Rangel (2004) que fizeram a adaptao do sistema para atender diversos requisitos da indstria moveleira. No ano de 2004 foi includa a opo de rotao de itens que permite que itens sejam rotacionados para serem

GUI: A interface grfica de usurio (Graphical User Interface) um tipo de interface que permite a interao com dispositivos digitais atravs de elementos grficos como cones e outros indicadores visuais, em contraste a interface de linha de comando.

34

includos nos padres de cortes, e tambm passou a ser considerada a medida da espessura da serra nos clculos dos planos de corte. Lemos e Rangel (2005) propuserem a reengenharia de software do sistema. Foi realizada a documentao do CorteBi com a finalidade de permitir a evoluo do sistema no longo prazo e facilitar o acesso do usurio s informaes geradas pelo sistema. Alm disso, foi proposta a adequao do cdigo-fonte do sistema ao paradigma de programao estruturada, a adio de uma interface grfica com o usurio e a incluso de um mdulo para a gerao de padres de corte do tipo tabuleiro. Barbosa e Rangel (2009) construram uma nova interface grfica com o usurio e adicionaram um banco de dados, aproximando o CorteBi realidade das empresas. Nesta verso atual possvel fazer o cadastro da matria-prima (objetos) e das peas que compem o produto final (itens) de modo a permitir a gerao de padres de corte para lotes inteiros de mveis fabricados (Figura 17). Considerando que o sistema no permite a gerao de padres de corte que atendam a toda demanda de forma exata (sem produzir peas excedentes), prope-se neste trabalho a incluso no sistema de um novo algoritmo de arredondamento na gerao de colunas chamado BRURED (Wscher, 1996). A incluso deste algoritmo ser discutida com mais detalhes na Seo 3.3.1.

Figura 17: Tela Inicial da interface atual do Sistema CorteBi 35

2.5

O setor moveleiro e o Plo de Votuporanga-SP


Tendo em vista o problema de corte de estoque bidimensional, traz-se a questo para

um setor industrial mais especfico, qual seja o moveleiro, importante dentre as demais atividades econmicas devido sua extenso e abrangncia produtiva diversa. Ao traarmos os aspectos gerais, as caractersticas e o perfil das indstrias moveleiras no Brasil, verificamos que h grande concentrao de empresas produtoras de mveis nas regies Sul e Sudeste, com um percentual de 81,7% do total de empresas e 87,1% do total de empregos formais do setor, Abimvel (2008). Alm de sua grande relevncia econmica, este segmento da indstria destaca-se enquanto importante atividade profissional, o que se justifica devido ao grande nmero de empregos gerados pelo setor na produo industrial como um todo no pas. Segundo dados de 2009 da Abimvel, 85.4 % das empresas produzem mveis de madeira, 8,7% mveis de metal, 4,8 % mveis estofados e apenas 1,1% outros mveis, como plstico e etc. No Brasil, assim como nos demais pases do mundo, as empresas moveleiras predominantes no mercado so de micro e pequeno porte. Conforme os dados da Abimvel foi demonstrados que dentre todas as empresas do setor, 97,7% assim se caracterizam. Acerca do tipo de matria-prima utilizada pelo setor, a madeira macia, muito utilizada pela indstria moveleira durante dcadas, vem sendo substituda por madeiras alternativas, obtidas por meio de reflorestamento, como por exemplo, o pinus e o eucalipto, bem como os painis de madeira tambm produzidos a base de madeira reflorestada. O destaque que a utilizao destes painis ganhou ao longo de todo o processo produtivo moveleiro, se deve ao fato de apresentar muitas das vantagens da prpria madeira macia alm de possibilitar um maior controle sobre suas dimenses, atividade bastante difcil de empregar em madeiras macias devido s restries naturais da rvore. Ainda acerca dos painis, Silva e Santos (2005) apresentam quatro tipos possveis de serem utilizados na fabricao de mveis: Compensados Laminados: produzidos a partir de lminas de madeira coladas e prensadas formando chapas com espessuras que variam de 4 a 20 mm. Estes painis apresentam boa resistncia mecnica e grande estabilidade, o que reduz a tendncia ao empenamento. Compensados Sarrafeados: o miolo deste painel composto por camadas de lminas de duas faces. Com a finalidade de se ter uma chapa mais resistente, as 36

lminas internas so coladas em um sentido e a chapa externa prensada em sentido contrrio. MDP (Medium Density Particleboard ou Painel de Partculas de Mdia Densidade): antigamente conhecido como aglomerado, trata-se de uma chapa fabricada com partculas de madeiras posicionadas em camadas e aglutinadas com adesivo sinttico. Apresentam pouca durabilidade e no resistente umidade. No entanto, tal produto se destaca por ser ecologicamente correto, pois em sua fabricao, so utilizadas somente madeiras advindas de florestas plantadas. MDF (Medium Density Fireboard ou Painel de Mdia Densidade): de acordo com a definio feita pelo Banco Nacional do Desenvolvimento (BNDES, 2000), trata-se de um aglomerado mais sofisticado, fabricado a partir da aglutinao de fibras de madeira com resinas sintticas e ao conjunta de temperatura e presso. Com propriedades muito semelhantes madeira slida, este tipo de painel, diferentemente dos demais compensados aglomerados, apresenta grande resistncia e textura uniforme. De grande mobilidade, tal produto pode ser cortado, perfurado, encaixado, pintado, usinado (entalhado e torneado), lixado, pregado, sem que haja danos em seu acabamento.

Tendo em vista todas as vantagens apresentadas pelo Painel de Mdia Densidade (MDF), sua utilizao vem ganhando destaque dentre as indstrias moveleiras de todo o pas. H, no entanto, a necessidade de aprimoramentos do maquinrio e elaboraes de padres de corte ao se produzir mveis a partir deste tipo especfico de matria-prima, pois o custo ao final de uma produo apresenta cerca da metade do valor despendido na obteno do MDF. Apesar de toda a disperso geogrfica, a indstria moveleira no Brasil agrupa-se em plos regionais, cujas localizaes mais representativas encontram-se tambm entre as regies Sul e Sudeste. Na regio Sudeste, os plos pioneiros localizavam-se j na dcada de 1950 na capital do estado de So Paulo, e nas cidades Santo Andr, So Bernardo do Campo e So Caetano, enquanto na regio Sul, na dcada de 1960 o estado com maior destaque era o Rio Grande do Sul e posteriormente na dcada de 1970 o estado de Santa Catarina (Moraes, 2002). Os plos com maior destaque no estado de So Paulo, encontram-se nas cidades de Votuporanga, Blsamo, Jaci, Mirassol, Neves Paulista, Itatiba e So Bernardo do Campo. 37

Neste trabalho foram usados dados de uma fbrica situada na cidade de Votuporanga, situada a 520 km da capital paulista, na regio noroeste do estado. A cidade possui populao residente de 84.692 pessoas em uma rea total de 424, 115 km (IBGE, 2010). Historicamente, a regio de Votuporanga apresentava, j nos anos de 1940 e 1950, atividades de comercializao de madeira, com uma vasta rea de diversas espcies de rvores, entre elas cedro e aroeira. J na dcada de 1980, a cidade passa a se desenvolver de forma mais expressiva, devido aos impulsos propiciados pelo setor moveleiro, de implementos rodovirios e de metalurgia. Atualmente, com uma estimativa de 3.220 empresas atuantes na regio, as que integram o plo moveleiro se destacam de acordo com sua grande contribuio para a economia local. Certificadas com o ISO 9002 de qualidade industrial, as empresas produzem de forma geral mveis de madeira, tubulares, estofados e colches com design e qualidade de primeiro mundo que atendem o mercado nacional e exportaes (Portal Moveleiro, 2011).

38

CAPTULO III - Reengenharia de Software do Sistema CorteBi

3.1 Criao e padronizao da Documentao da Interface Grfica do CorteBi


O sistema CorteBi desenvolvido inicialmente por Perin e Rangel (1989) resolve problemas gerais de corte de estoque bidimensionais atendendo a uma demanda solicitada e otimizando a perda de matria-prima (seo 2.4). Atualmente o software se encontra em sua quarta verso, (Barbosa e Rangel (2009)) possui uma interface grfica para interao com o usurio e um banco de dados, aproximando o CorteBi realidade das empresas do setor moveleiro. A maioria dos problemas associados manuteno de software depende da maneira segundo a qual o software foi planejado e desenvolvido. Alguns fatores como falta de documentao e cdigo-mal-estruturado, pode se traduzir em dificuldades durante a manuteno do software. Para a criao das documentaes do CorteBi foram realizadas pesquisas bibliogrficas sobre a aplicao da linguagem de modelagem UML e as especificaes dos padres utilizados em seus diagramas. A escolha dos diagramas a serem utilizados para a documentao da interface foi feita com base nas principais referncias do tema (Booch; Jacobson e Rumbaugh, 2000). Foram utilizados na documentao dois diagramas importantes para a especificao do sistema existente: O diagrama de Casos de Uso e o diagrama de Classes que se classificam como diagramas comportamentais e estruturais, respectivamente. O diagrama de Casos de Uso foi utilizado com o objetivo de fornecer uma descrio consistente e clara sobre as responsabilidades que devem ser cumpridas pelo sistema. O diagrama de Classes tambm foi utilizado na documentao, pois permite a visualizao das classes com seus atributos e mtodos que compe o sistema. Esse diagrama demonstra como a interao entre essas classes, e como feita a transmisso de informaes entre si. Alm de apresentar uma viso de como as classes esto organizadas, ele serve como base para criao futura de outros diagramas ao sistema CorteBi. Utiliza-se neste trabalho uma ferramenta baseada em ambiente CASE chamado Enterprise Architect7, para auxiliar na gerao dos diagramas. Essa ferramenta oferece
7

Disponvel em http://www.sparxsystems.com.au/ acessado em 17 de Abril de 2011.

39

suporte engenharia reversa de cdigo-fonte para a linguagem JAVA (linguagem da interface do CorteBi). Apesar da sua licena no ser gratuita, o programa possui recursos compatveis com a ltima verso da UML (seo 2.1.3), no qual foram baseados os diagramas de Casos de Uso e diagramas de Classes, sendo assim foi utilizada uma verso de avaliao para a realizao deste trabalho.

3.2

Engenharia Reversa do Sistema de Interface


No ciclo inicial de entendimento do sistema foi feita a anlise de toda a documentao

relacionada ao CorteBi. Nesta documentao est incluso a interface das variveis globais, a especificao de interface dos mdulos, a descrio das variveis globais, a diviso dos mdulos assim como a reestruturao do cdigo-fonte escrito em PASCAL (Lemos, 2005). Para a criao da documentao da interface, foi necessria tambm a anlise do cdigo-fonte em JAVA com a finalidade de criar sua representao de uma forma diferente, em um nvel mais alto de abstrao do que o cdigo-fonte existente. Foram realizados tambm diversos testes na verso atual do sistema CorteBi com o objetivo de conhecer e compreender o comportamento do sistema e ento modelar a documentao estrutural e comportamental do mesmo.

3.2.1 Anlise de Cdigo e Criao da Documentao


Como o nico elemento disponvel para o entendimento estrutural da interface do sistema era o cdigo-fonte e o ambiente do software, a atividade de manuteno do software e criao da documentao baseou-se com uma intensa avaliao do cdigo. Caractersticas como: estrutura de programa, estrutura de dados globais e interfaces do sistema foram verificadas e interpretadas. Com a realizao da anlise, abstraiu-se um conjunto de informaes para que a documentao fosse criada de forma simples, mas que abrangesse o entendimento total do sistema CorteBi. Na atividade de estruturao de documentos para o CorteBi o tempo requerido para documentar todo o cdigo-fonte em diversos diagramas UML ultrapassa o tempo 40

disponvel para a realizao deste projeto. Portanto, a atividade desenvolvida nesta fase foi: documentar o sistema de interface baseado em dois diagramas de UML como Caso de Uso e diagramas de Classes aplicando a engenharia reversa. A interface grfica em JAVA implementada por Barbosa (2009) teve por objetivo aperfeioar execues do CorteBi em PASCAL atravs de reagrupamentos de itens semelhantes presentes em diferentes tipos de mveis. Juntamente a esses reagrupamentos foi introduzida a funcionalidade de projetos, permitindo uma manipulao melhorada e mais intuitiva dos planos de corte. A interface est baseada no conjunto de classes e objetos que se relacionam conforme sua estrutura. A organizao dessas classes est subdividida em cinco pacotes diferentes como descritos na Tabela 2.

Tabela 3: Descrio dos pacotes e seu contedo

PACOTE Beans Dados Janelas Principal

CONTEDO Contm javabeans para representar os diversos objetos utilizados, tais como Projeto, Planos de corte, Itens, Padro, Faixa e Lote. Contm as classes utilizadas para o acesso ao banco de dados. Contm os arquivos referentes s janelas da interface (layout). Contm o arquivo principal do cdigo-fonte (Cortebi.java), juntamente com outras classes importantes como as de desenho dos planos de corte, e classes auxiliares para comunicao com o Cortebi.exe. Arquivos de modelo para insero/manipulao de dados nas tabelas da interface grfica.

Tabelas

Para o planejamento e criao dos diagramas de Classes, procurou-se entender primeiramente a funo de cada classe dentro da estrutura do sistema assim como seu conjunto de atributos e mtodos. As classes includas no pacote Janelas representam as janelas da interface grfica do sistema (layout) no sendo necessrias explicaes maiores. A seguir (Tabela 3) descreve-se qual a funcionalidade de cada classe e o pacote a qual pertence.

41

Tabela 4: Descrio da funcionalidade de cada classe no sistema CorteBi

Nome da Classe Cores

Pacote Beans

Funcionalidade Armazena as cores no formato RGB. um atributo que permite que cada pea possua sua cor. Representa os dados de um padro de corte. Um esquema de corte contm os resultados do processamento do Cortebi.exe referente a uma determinada placa e suas respectivas peas, inclusive os desenhos dos padres de corte. Representa as informaes referentes a uma faixa de um padro de corte. utilizado para facilitar o desenho de um padro de corte. Representa as informaes das peas. utilizado para recuperar a ordem original das peas, inseridas pelo usurio. Representa as informaes referentes a um lote de um produto (mvel). Um Lote pode possuir vrios projetos e as respectivas quantidades destes. Representa as informaes referentes aos padres de corte. Armazena informaes tais como as faixas utilizadas e outros dados estatsticos. Representa dados referentes s peas. utilizado para representar as peas em si, so utilizadas pela interface grfica e persistncia no banco de dados. Representa os dados referentes s placas como cdigo, nome, espessura, comprimento, largura e descrio. Representa as informaes das placas. utilizada para auxiliar na lgica quando o usurio resolve trocar uma placa automaticamente. Armazena informaes referentes aos projetos. Contm os tipos de placas utilizadas e suas respectivas peas, tambm um nome, descrio e categoria. Contm as operaes de persistncia de dados especificamente para planos de corte. Contm as operaes de persistncia de dados especificamente para os projetos. Adiciona o cdigo, comprimento, largura e a espessura da pea. 42

Esquema

Beans

Faixa

Beans

Item

Beans

Lote

Beans

Padrao

Beans

Peca

Beans

Placa

Beans

PlacasTrocadas Beans

Projeto

Beans

BancoPlanos BancoProjetos ModeloAdicionaPeca

Dados Dados Tabelas

Nome da Classe ModeloAdicionaPlaca ModeloAdicionaProjetos ModeloConjuntos

Pacote Tabelas Tabelas Tabelas

Funcionalidade Adiciona o cdigo e o nome da placa para buscas no sistema. Adiciona o cdigo e o nome do projeto. Faz a populao da tabela com os dados de peas e projeto. Adiciona o nmero, cdigo, comprimento, largura, quantidade e descrio de cada pea. Realiza o cadastro das peas. Adiciona o cdigo, comprimento, largura e espessura de cada placa. Adiciona apenas o cdigo e o nome do Plano de corte para buscas no sistema. Adiciona apenas o cdigo do Plano de Corte para buscas no sistema. Adiciona o cdigo, o nome e a quantidade de cada projeto a ser cortado. Contm as operaes necessrias para comunicao com o Cortebi.exe atravs de arquivos de entrada e sada. Arquivo principal do projeto, contendo a janela principal da interface grfica, a partir de onde toda a interface grfica manipulada. Contm operaes para a chamada do Cortebi.exe para os clculos dos padres de corte atravs do uso de Threads. Permite que uma execuo demorada do Cortebi.exe no trave. Contm as operaes necessrias para se desenhar um padro de corte. Recebe as informaes de um padro de corte j calculado e produz o desenho. Utiliza a classe DesenhaPadrao para desenhar todos os padres referentes a uma determinada placa.

ModeloPecas ModeloPecasCadastro ModeloPlacas ModeloPlanos ModeloProjeto ModeloProjetoEmLote

Tabelas Tabelas Tabelas Tabelas Tabelas Tabelas

Arquivos

Principal

Cortebi

Principal

CortebiThread

Principal

DesenhaPadrao

Principal

Desenhista

Principal

O intuito da construo dos diagramas de Classes para a documentao demonstrar as classes que compem o sistema com seus respectivos atributos e mtodos bem como as associaes entre elas. Tais diagramas permitem melhor visualizao estrutural e consequentemente, possibilita a evoluo de forma organizada do sistema servindo como base para a construo de outros diagramas UML.

43

Como visto na tabela 3, todas as classes pertencentes interface esto dividas em pacotes (Beans, Dados, Tabelas e Principal). Segundo Guedes (2009) um pacote um mecanismo de agrupamento cujo objetivo organizar elementos de modelagem em grupos. Em um diagrama de classes, os pacotes so altamente utilizados, pois, na implementao do sistema, a organizao das classes so construdas utilizando pacotes, tornando-se vitais para projetos grandes. Para haver dependncia entre dois pacotes, preciso ter dependncia entre quaisquer duas classes entre eles. Pela anlise do cdigo-fonte do sistema CorteBi verificou-se que existe dependncias de classes entre os pacotes descritos na tabela 3. Para iniciarmos a modelagem dos diagramas primeiramente temos que formalizar a relao entre estes pacotes. Na Figura 18, apresenta-se um diagrama de pacotes onde so mostradas as dependncias entre eles.

Figura 18: Diagrama de Pacotes do Sistema CorteBi

Pela anlise do diagrama de pacotes Figura 18, possvel ter uma idia inicial de como as classes se relacionam. Foram modelados inicialmente dois diagramas de classes, que mostram a relao entre as classes do pacote, dando uma viso geral de como feito o acesso ao banco de dados do sistema. No diagrama da Figura 19 apresenta as classes responsveis pelas operaes de dados especificamente para planos de corte. 44

Figura 19: Diagrama de Classes para operaes de Planos de Corte

O diagrama de classes da Figura 20 mostra as classes responsveis pelas operaes de dados especificamente para projetos e suas relaes.

45

Figura 20: Diagrama de Classes para operaes de Projeto

No terceiro e ltimo diagrama apresentado a modelagem das relaes de dependncias das principais classes do pacote principal juntamente com as classes do pacote Beans. Classes importantes como as de DesenhaPadrao que responsvel por desenhar o padro de corte e a classe Desenhista que utiliza a classe DesenhaPadrao para desenhar todos os padres referentes a uma determinada placa foram includas no diagrama. A operao necessria para se desenhar um padro de corte est representada na Figura 21.

46

Figura 21: Diagrama de Classes para desenho de padres de corte

Para a construo dos diagramas de casos de uso faz-se uma anlise comportamental do sistema CorteBi. Para cada caso de Uso, construmos um diagrama especificando o comportamento externo atravs de uma perspectiva do usurio. O intuito dessa construo identificar os tipos de usurios que podem interagir com o sistema alm de poder visualizar, especificar e documentar as caractersticas das funes requisitadas pelo prprio usurio (Seo 2.2.2). O objetivo do sistema CorteBi otimizar a perda do material gerando solues eficientes para o problema de corte de matria prima. Para isso o software necessita de dados como objetos disponveis no estoque, tipos de produtos fabricados pela fbrica e seus respectivos itens com suas medidas de comprimento, largura e espessura. O sistema possui 47

trs subsistemas de diagramas de Casos de Uso. Faz-se a modelagem dos trs subsistemas Gerenciamento de Placas e Gerenciamento de Projetos, que permite ao usurio fazer a manuteno de placas disponveis para corte e projetos produzidos pela fbrica, e por fim modelamos tambm o subsistema do diagrama de Casos de Uso Gerenciamento de Planos de Corte em que o usurio adiciona o projeto j cadastrado e realiza a configurao do plano para realizar o processo de gerao de padres de corte. Neste primeiro diagrama de Casos de Uso, o usurio possui trs opes de execuo. Gerenciar objetos, gerenciar projetos e gerenciar planos de corte. Ao executar um destes caso de uso, outro diagrama executado de forma a detalhar as funes pertencentes a cada caso. Na Figura 22, detalhado o Caso de Uso principal, na qual apresenta as funes principais do sistema CorteBi e na Tabela 5 apresentada a sequncia de atividades executadas pelo usurio no sistema CorteBi.

Figura 22: Diagrama de Casos de Uso - Gerenciar sistema CorteBi

48

Tabela 5: Documentao do Diagrama de Casos de Uso Gerenciar Sistema CorteBi Nome do Caso de Uso Caso de Uso Geral Ator Principal Atores Secundrios Resumo Pr-Condies Ps-Condies Aes do Ator 1) O usurio Clica em GERENCIAR PLACAS. Gerenciar Sistema CorteBi Inexistente Usurio Este caso de uso descreve as atividades executadas por um usurio para o gerenciamento do sistema CorteBi. Inexistente Inexistente Respostas do sistema 2) O sistema exibe a tela de Placas Cadastradas mostrando os dados de objetos j cadastrados e aguarda uma ao do usurio: localizar, adicionar, remover, alterar descritas no subsistema - Gerenciar Objetos. 2) O sistema exibe a tela de Projetos Cadastrados mostrando os dados de projetos j cadastrados e aguarda uma ao do usurio: localizar, abrir, adicionar, remover descritas no subsistema - Gerenciar Projetos. 2) O sistema exibe a tela de Planos de Corte mostrando os Planos de Corte j cadastrados e aguarda uma ao do usurio: localizar, abrir, gerar, remover descritas no subsistema - Gerenciar Planos de Corte. Inexistente

1) O usurio Clica em GERENCIAR PROJETOS. 1) O usurio Clica em GERENCIAR PLANOS DE CORTE. Restries/Validaes

Na Figura 23, o usurio possui a opo de gerenciar objetos atravs da criao, localizao, edio e remoo do mesmo. Mais detalhes sobre este diagrama de Casos de Uso em especfico pode ser encontrado na Tabela 6.

49

Figura 23: Diagrama de Casos de Uso 1 Subsistema Gerenciar Objetos

50

Tabela 6: Documentao do Subsistema Gerenciar Objetos Nome do Caso de Uso Caso de Uso Geral Ator Principal Atores Secundrios Resumo Pr-Condies Ps-Condies Aes do Ator 1) O usurio clica no boto LOCALIZAR. 3) O usurio informa o cdigo chave no filtro para a procura da Placa desejada e clica em Procurar. 1) O usurio clica em NOVA. Subsistema Gerenciar Objetos Gerenciar Sistema CorteBi Usurio Este subsistema descreve as atividades executadas por um usurio para fazer o gerenciamento de cadastro de Placas. A execuo do cadastro de placa precisa ser selecionada pelo usurio. Inexistente. Respostas do sistema. 2) O sistema exibe a tela de localizao de Placas e disponibiliza um campo (busca pelo cdigo) para que o usurio informe a Placa que deseja localizar. 4) Se a Placa no for encontrada, o sistema no retorna nenhuma mensagem. Se for encontrada, o sistema exibe uma listagem das Placas encontradas de acordo com a pesquisa feita pelo usurio para possveis alteraes. 2) O sistema exibe a tela Nova Placa e disponibiliza os campos: Cdigo; Nome; Comprimento; Largura; Espessura; Espessura da Serra; Permitir Rotao e Descrio da Placa para ser preenchido pelo usurio. 4) O sistema realiza a alterao no banco de dados do sistema.

3) O usurio informa os campos necessrios ao cadastro e executa o procedimento Salvar ou Cancelar. 1) O usurio seleciona uma das placas cadastradas no sistema e clica em REMOVER 1) O usurio seleciona uma nica placa e em seguida clica em ALTERAR DADOS

2) O sistema verifica qual placa foi selecionada e faz a remoo sem a mensagem de confirmao.

2) O sistema exibe a tela Alterar dados e permite a alterao dos seguintes atributos da Placa: - Cdigo; Nome; Comprimento; Largura; Espessura; Espessura da Serra; Permisso de Rotao de itens e Descrio da Placa.

3) O usurio altera os dados desejados e clica em Salvar ou Cancelar a alterao. Restries/Validaes Inexistente

Para o diagrama do subsistema Gerenciar Projetos (Figura 24) o usurio tem a opo de criar, abrir, localizar e remover projetos (produtos) dentro do sistema CorteBi. Ao incluir um projeto, o usurio obrigado a incluir as caractersticas de projeto assim como objetos e itens pertencentes ao mesmo. 51

Figura 24: Diagrama de Casos de Uso 2 - Gerenciar Projetos

52

Tabela 7: Documentao do Subsistema Gerenciar Projetos Nome do Caso de Uso Caso de Uso Geral Ator Principal Atores Secundrios Resumo Pr-Condies Ps-Condies Aes do Ator 1) O usurio clica no boto LOCALIZAR. 3) O usurio informa o cdigo do projeto, seleciona o filtro por categoria para a procura do Projeto desejado e clica em Procurar. 1) O usurio seleciona um Projeto cadastrado e em seguida clica em ABRIR. 3) O usurio altera as caractersticas que achar necessrio e executa o procedimento Salvar ou Fechar. 1) O usurio clica em NOVO 1) O usurio seleciona um projeto cadastrado e em seguida clica em REMOVER. 1) Incluir Caractersticas 3) O usurio informa os dados de projeto. 1) Gerenciar Placas 3) O usurio seleciona a placa desejada e altera os dados que achar necessrio. 1) Gerenciar Itens Restries/Validaes Subsistema Gerenciar Projetos Gerenciar Sistema CorteBi Usurio Este subsistema descreve as atividades executadas por um usurio para fazer o gerenciamento de cadastro de projeto A execuo do cadastro de projeto precisa ser selecionada pelo usurio Inexistente Respostass do sistema 2) O sistema exibe a tela de Localizao de Projetos e solicita o preenchimento dos seguintes filtros: - Cdigo do Projeto e Filtro por Categoria de Projeto. 4) Se o Projeto no for encontrado, o sistema no retorna nenhuma mensagem. Se for encontrado, o sistema exibe uma listagem dos Projetos encontrados de acordo com a pesquisa feita pelo usurio para possveis alteraes. 2) O sistema exibe a tela Projetos com as caractersticas do projeto selecionado e permite a alterao dos seguintes dados: Cdigo, Nome, Categoria, Placas utilizadas no Projeto, Peas originadas de Placas selecionadas. 4) O sistema realiza a alterao dos dados informados pelo usurio no banco de dados.

2) O sistema exibe a tela Novo Projeto e permite a execuo dos Casos de Uso Incluir Caractersticas, Gerenciar Placas e Gerenciar Itens. 2) O sistema verifica qual projeto foi selecionado e faz a remoo sem a mensagem de confirmao.

2) O sistema exibe os campos dos seguintes atributos: - Cdigo; Nome; Categoria e Descrio.

2) O sistema permite adicionar placas, alterar, remover ou visualizar os dados da placa.

2) O sistema permite adicionar itens, remover, importar e mover os itens para outras placas Inexistente 53

Na Figura 25 detalhado o diagrama Gerenciar Planos de Corte, onde o usurio possui a permisso de gerar, abrir, localizar e remover um plano de corte. Ao gerar um novo plano de corte o usurio obrigado a incluir objetos e configurar caractersticas para ento acionar o mdulo que resolve o problema de corte de estoque.

Figura 25: Diagrama de Casos de Uso 3 - Gerenciar Planos de Corte

54

Tabela 8: Documentao do Caso de Uso 3 - Gerenciar Planos de Corte Nome do Caso de Uso Caso de Uso Geral Ator Principal Atores Secundrios Resumo Pr-Condies Ps-Condies Aes do Ator 1) O usurio clica no boto BUSCAR. 3) O usurio informa o cdigo do plano de corte e clica em Procurar. Subsistema Gerenciar Planos de Corte Gerenciar Sistema CorteBi Usurio Este caso de uso descreve as atividades executadas por um usurio para fazer o gerenciamento de planos de corte. A execuo do cadastro de planos de corte precisa ser selecionada pelo usurio Inexistente Respostass do sistema 2) O sistema exibe a tela de Localizao de Planos de corte e solicita o preenchimento do seguinte filtro: - Cdigo do Plano de Corte. 4) Se o Plano de corte no for encontrado, o sistema no retorna nenhuma mensagem. Se for encontrado, o sistema exibe uma listagem dos Planos de corte encontrados de acordo com a pesquisa feita pelo usurio para possveis visualizaes dos padres. 2) O sistema exibe a tela Planos de Corte com as caractersticas do projeto selecionado e permite a visualizao dos projetos utilizados na produo e placas utilizadas na produo.. 4) O sistema exibe as telas com todos os esquemas dos padres de corte gerados pelo projeto selecionado e mostra os dados referentes estatsticas de perda, nmero de utilizao de cada padro, cdigo, nome, medidas e porcentagens. 2) O sistema exibe a tela Novo Plano de Corte e permite a execuo dos Casos de Uso Gerenciar Projetos, Configurar Corte e Calcular Plano de Corte. 2) O sistema verifica qual plano de corte foi selecionado e faz a remoo sem a mensagem de confirmao.

1) O usurio seleciona um Plano de corte cadastrado e em seguida clica em ABRIR. 3) O usurio seleciona o projeto desejado em seguida a placa desejada e clica em Planos de Corte desta Placa 1) O usurio clica em NOVO 1) O usurio seleciona um plano de corte cadastrado e em seguida clica em REMOVER. 1) Gerenciar Projetos 3) O usurio adiciona quais os projetos sero includos no plano de corte. 1) Configurar Corte

2) O sistema permite a adio e remoo de projeto cadastrados.

1) Calcular Plano de Corte Restries/Validaes

2) O sistema permite configurar os dados da plano de corte como: escolher a configurao de corte para cada placa ou para todas igualmente. Permite a gerao de corte com peas excedentes e gerao de padres tabuleiro. 2) O sistema calcula os padres de corte referentes ao plano de corte configurado. Inexistente 55

3.2.2 Utilizao do Sistema CorteBi


A incluso dos dados do problema a ser resolvido pelo sistema CorteBi feita manualmente. A primeiro passo ao iniciar o uso do Sistema CorteBi pela primeira vez, cadastrar as placas que a fbrica utiliza em seus produtos. Para isto devero ser inseridos: o cdigo; o nome; o comprimento e largura; a espessura da placa; a espessura da serra; a orientao dos itens (fixa ou rotativa) e uma descrio sobre a placa (Figura 26).

Figura 26: Janela para cadastro de Placa

Aps cadastrar todas as placas disponveis no estoque, necessrio incluir um projeto (produto fabricado na indstria). O cadastro de projeto dividido em trs etapas. Na primeira etapa o usurio insere as informaes de identificao do projeto como: cdigo; nome; categoria (armrio, penteadeira...) e a descrio. Na segunda etapa, o usurio adiciona as placas que faro parte do projeto e na terceira e ltima etapa, para cada placa, inserido os 56

respectivos itens como, por exemplo, fundo de gaveta, porta de armrio, entre outros (Figura 27).

Figura 27: Janela para cadastro de Projeto

Aps cadastrar os Projetos, o usurio pode gerar padres de corte para lotes inteiros de produtos, tanto lotes homogneos (um nico tipo de produto) quanto heterogneos (vrios tipos de produtos). Para a gerao dos padres de corte so adicionados os projetos que faro parte do lote. Dentre as opes de corte, h a opo de escolher se permite que sejam produzidas peas excedentes para diminuir a perda de matria-prima e/ou se deseja utilizar o Padro Tabuleiro o qual permite a gerao de padres de corte mais fceis de cortar. As configuraes podem ser aplicadas para todo o projeto ou individualmente para cada placa utilizada (Figura 28).

57

Figura 28: Janela para gerao dos Planos de Corte

Aps inserir os projetos e as respectivas quantidades que sero produzidas de cada um, o usurio pode gerar os padres de corte selecionando uma das placas utilizadas na produo e em seguida clicar em Calcular Plano de Corte e ento ser exibida a tela com todos os padres de corte gerados (Figura 29).

58

Figura 29: Janela que apresenta os Padres de Corte

3.3 Novas funcionalidades - Incluso de um novo Mdulo de Arredondamento


O mtodo de arredondamento a ser includo no sistema CorteBi nomeado BRURED (Wscher, 1996). O objetivo deste mtodo diminuir o excesso de produo causado pelo arredondamento da soluo pelo maior inteiro x j = [ x j ] utilizado atualmente no sistema.
Visto que o arredondamento pode causar produo excessiva de itens e consequentemente um aumento no custo da produo, o mtodo BRURED verifica quais variveis x j podem ser reduzidas de uma unidade sem deixar de atender a demanda de nenhum item, (Martins, 2010). Assim, pode-se verificar que para cada padro de corte, se a varivel xk , aps o arredondamento pelo maior inteiro, satisfaz a desigualdade:

59

Onde aij o nmero de vezes que o item i aparece no padro de corte j e x j a frequncia dos padres de corte. Ento xk = xk 1 uma soluo factvel. Para integrao do novo mdulo de arredondamento BRURED no sistema CorteBi foram realizadas algumas modificaes na estrutura do mdulo sol_otima (mdulo responsvel pelos clculos estatsticos como: demanda total e atendida, nmero de vezes que cada padro usado, nmero de itens no atendidos, valor timo primal e dual e tempo de execuo). Dentro desse mdulo foi includa uma chamada ao mtodo BRURED aps a realizao do arredondamento pelo maior inteiro do mdulo teto. O cdigo-fonte do mdulo BRURED em PASCAL est apresentado na Figura 30.

Figura 30: Cdigo-Fonte do Mdulo BRURED 60

Com base na programao implementada e seguindo as estruturas dos mtodos do CorteBi, criou-se um detalhamento do mdulo baseado no modelo de especificaes de interface dos mdulos do CorteBi construda por Lemos (2005), que apresenta para cada mdulo: o nome, a funo, a interface de entrada e sada, arquivo onde est localizado, seu mdulo superior, seu mdulo inferior, as variveis (globais, locais e de passagem por parmetros de: referncia e valor) assim como constantes utilizadas. Detalha-se na figura 31 o mdulo BRURED conforme padro da documentao.

Figura 31: Especificao do mdulo BRURED implementado no CorteBi

Onde na figura 31 temos: m: Nmero de padres de corte; exp1: Recebe o valor do primeiro termo da multiplicao no mtodo BRURED (aik(xk-1)); exp2: Recebe o valor da somatria do mtodo BRURED ( aij(xj), sendo i=1...m, i k );
vet_padroes[i] : Vetor duplicado dos padres e[i] que o mesmo que Xb[i] (Frequncia de

padres);
d[i] : Vetor de demanda dos objetos e serem cortados (Ordenado de acordo com a largura dos

itens).

Alm da incluso do mdulo BRURED para arredondamento faz-se tambm uma padronizao na visualizao da interface do CorteBi. Alguns botes com a mesma 61

funcionalidade tiveram suas imagens padronizadas de forma a melhorar a usabilidade e facilidade de entendimento do software. No captulo 4 apresentado alguns detalhes do processo de corte assim como os testes computacionais com dados reais da Fbrica L para a verificao do mtodo BRURED no sistema CorteBi.

62

CAPTULO IV - Coleta de dados e avaliao computacional do mdulo de arredondamento


Neste captulo descrito algumas observaes sobre o processo de produo realizado durante as visitas fbrica L. Analisa-se tambm como so gerados os padres de corte atualmente para produo dos mveis. Em seguida feita uma avaliao da nova funcionalidade adicionada ao sistema CorteBi como a incluso do novo mdulo de arredondamento BRURED. Descreve-se tambm alguns testes computacionais de gerao de padres de corte com dados reais de um mvel fabricado atualmente pela Fbrica L para anlise do comportamento do mtodo utilizado. Algumas comparaes so feitas durante o captulo de modo a comprovar a eficcia do mtodo.

4.1 - A Fbrica L
A fim de aliar estudos tericos e experincias prticas, coletamos dados de uma indstria moveleira de pequeno porte, localizada no plo de Votuporanga-SP, a qual ser denominada Fbrica L. Foram feitas algumas visitas Fbrica L ao longo do ano de 2010. Durante as visitas, os processos organizacionais de produo, rotina de trabalho, modo e execuo de atividades, bem como nmero de funcionrios e aspectos gerais da empresa foram analisados. A fbrica produz cerca de quatro tipos de mveis residenciais diferentes que so denominados por famlias. Dentre eles esto inclusos, armrios multiuso, camas e cabeceiras de casal e solteiro, penteadeiras, e guarda-roupas de trs, quatro e cinco portas. Todos esto disponveis nas cores marfim, mogno, tabaco, tabaco/branco e tabaco/maple, sendo parte deles usados para exportao. Sua estrutura conta com equipamentos (alguns automticos) para o corte da matriaprima, furao, acabamentos e pinturas dos itens utilizados na montagem dos mveis. A empresa possui uma equipe de sessenta funcionrios, dos quais quinze atuam na rea administrativa, e quarenta e cinco na rea de produo. A matria prima utilizada no processo de produo de mveis o MDF (Fibra de Mdia Densidade) em espessuras de 3 mm, 9 mm, 12 mm, 15 mm e 18 mm. H pouco tempo, a empresa incorporou ao processo de produo outro tipo de matria-prima, o MDP 63

(Partculas de Mdia Densidade), pelo fato de ser um material de boa resistncia e apresentar baixo custo. A fbrica trabalha com placas (objetos) de dimenses diferentes das utilizadas h aproximadamente um ano (ver o estudo apresentado em Barbosa (2009)), sendo agora maiores com as medidas de 2.440 mm de largura por 2.750 mm de comprimento. Este fato demonstra a necessidade de sistemas de apoio deciso. A mudana no tamanho das placas (objetos) implica em gerar novos padres de corte.

Processo de Produo
Na Fabrica L existe um funcionrio que, juntamente com o gerente de produo, responsvel pela organizao e planejamento de todo o processo de produo da fbrica. A empresa possui uma meta de corte por dia, seguindo um planejamento semanal baseado na carteira de pedidos da semana, no estoque e na mdia de vendas dos ltimos meses com o objetivo de atender o mercado sem que haja algum prejuzo. Em mdia, cada mvel fabricado em apenas cinco dias passando por todos os processos de fabricao, que envolve entre outros, o corte, acabamento final e empacotamento. Na Figura 32 exibido um diagrama que exemplifica o processo de produo da Fabrica L e a seguir algumas etapas e mquinas so descritas.

Fonte: Cavalli, 2004.

Figura 32: Demonstrativo de linha de produo da Fbrica L 64

Seccionadoras Na fbrica h duas seccionadoras, sendo uma delas automtica (Seccionadora 1 - a mais utilizada no corte das placas) e outra semi-automticas (Seccionadora 2 - somente utilizada quando faltam peas para completar o produto, ou mesmo cortar peas que a fbrica no produz mais de forma usual). A Seccionadora 1 gasta o dobro da energia que a Seccionadora 2, sendo necessrio neste caso, um bom planejamento de padro de corte para que o nmero de cortes e consequentemente o funcionamento da mquina seja no menor tempo possvel, otimizando todo o processo de corte. A operao da Seccionadora 1 feita da seguinte forma: uma empilhadeira alimenta a esteira da seccionadora com as placas a serem cortadas. O operador, em seguida, entra com os dados associados aos padres de corte atravs de um teclado informando a quantidades de placas e as dimenses dos cortes que sero utilizados no 1 estgio. Logo em seguida a mquina acionada e a esteira rolante levanta um determinado nmero de placas que sero cortadas ao mesmo tempo at a altura da mesa principal. Na sequncia, as placas so empurradas na direo da serra, que por sua vez vai cortando as faixas (primeiro problema da mochila) de acordo com o padro que foi programado. Enquanto as placas vo sendo cortadas, os operadores ficam do outro lado da serra e vo retirando os itens ou deixando nas mesas de apoio as faixas que sero cortadas novamente (segundo problema da mochila). Depois desse corte do primeiro estgio, as faixas so rotacionadas e a mquina acionada novamente. Se mais estgios forem necessrios o processo repetido da mesma forma. Todos os cortes que so realizados na seccionadora so chamados de cortes guilhotinados, ou seja, de um extremo a outro da placa. Na figura 33 apresenta-se o desenho da Seccionadora 1.

65

Fonte: Martins, 2010.

Figura 33: Esboo da mquina seccionadora automtica vista de cima

A Figura 34 mostra algumas fotos, tiradas em uma das visitas fbrica L, para ilustrar o processo de corte de objetos pela seccionadora automtica.

Figura 34: Fotos do processo de Corte na Seccionadora Automtica 66

Mquina de Tupia Alguns itens de determinados produtos fabricados pela indstria em questo como portas de armrios, cabeceiras de camas, frente de gavetas de penteadeiras, possuem certo detalhe (desenho) na regio plana da madeira. Este corte feito pela mquina da tupia, a qual realiza o sugo da madeira de maneira que ela fique desenhada da forma que se desejar. Para cada item, necessrio um corte feito pela mquina. A produo sequencial, a pea colocada em uma matriz de ferro e empurrada para que o desenho da lmina corte a madeira do modo previsto. Uma a uma as peas vo sendo desenhadas na tupia.

Furadeira e Coladeira de Bordas Antes da chegada da Seccionadora 1, o processo de corte era considerado um gargalo na linha de produo. Depois que a est mquina entrou em operao, o gargalo da produo passou a ser o processo de furar e colar as bordas nos itens. Mas, este cenrio tambm j mudou com a aquisio de uma nova mquina furadeira. A nova furadeira realiza furos em diversos sentidos, tanto na horizontal quanto na vertical, alm de trabalhar com diversos itens no mesmo perodo diminuindo assim o tempo nesse estgio da produo. Logo aps a passagem pela furadeira, realizado o processo de colagem de bordas. A mquina trabalha com uma cola quente a uma temperatura de 200 C colando a borda feita de um tipo especial de papel com uma gramatura alta. Um dos operadores carrega a mquina com os itens manualmente, os quais passaram pela esteira rolante para que seja feita a colagem das bordas, enquanto outro funcionrio fica no final da mesa para pegar os itens com a borda j colada e colocar na mesa de apoio. Neste caso, a colagem feita item por item.

Acabamento O processo de pintura feito em vrias etapas. A primeira consiste em lixar todo o item, logo em seguida passada uma massa, como se fosse uma massa de pr-pintura. Posteriormente, o item novamente lixado, e ento se aplica a tinta na cor desejada. A prxima etapa se d acerca da aparncia dos itens, de acordo com efeitos do tipo veios da madeira (manchas), sendo secadas agrupadas e embaladas logo aps. O interessante no processo de pintura surge quando a fbrica possui somente um tanque e se deseja trocar a cor, pois os tanques precisam ser lavados e a tinta dever ser batida para garantir a homogeneidade. Tal processo apresenta um tempo de preparo razovel. Assim, 67

ao se realizar o planejamento de produo, atenta-se para que esta ocorra de tal forma que os itens a serem produzidos ao longo do dia apresentem a mesma colorao. Recentemente a fbrica L adquiriu um novo tanque. A empresa conta com dois tanques, o que lhe permitiu reduzir o tempo de preparo, podendo produzir mveis com at duas cores no mesmo dia.

Etapa Final A finalizao do produto inclui os processos de embalagem e estoque. Nessa ltima etapa os itens so armazenados em caixas de papelo e levados para a estocagem, prontos para serem expedidos. A estocagem organizada de maneira que os mesmos mveis fiquem em uma mesma pilha. No processo de embalagem resolvido o primeiro problema da mochila, no qual devese calcular o maior nmero de itens possveis a serem depositados dentro de uma mesma embalagem. So necessrios trs ou mais funcionrios para esta etapa. Os itens agrupados por tipo de mvel so colocados na esteira rolante e acomodados dentro de uma caixa de papelo. J embalados, vo para o estoque, ou diretamente para o cliente.

Gerao de padres de corte


Durante certo perodo, observou-se que o corte da matria prima era realizado baseado no conhecimento e experincia que os operadores responsveis pela seccionadora obtiveram com a prtica ao longo dos anos. A gerncia de produo da fbrica trabalhava com planejamentos semanais baseados na carteira de pedidos da semana, no estoque e na mdia de vendas dos ltimos meses. Todos os planejamentos eram realizados manualmente de acordo com o necessrio. Atualmente todo o processo de produo da Fbrica L, baseado nos padres de cortes gerados pelo software chamado Corte Certo (www.cortecerto.com). Alm do Corte Certo, na ltima visita vimos que um novo sistema de software passou a ser utilizado para planejamento e controle de fabricao de mveis desta fbrica. Um software de Planejamento e Controle de Produo (PCP) passou a controlar o processo de produo, desde quantidades de placas a serem cortadas no dia, materiais utilizados, tempo de produo e at mesmo o quanto h de estoque de cada produto.

68

4.2

Avaliao Computacional do Mdulo BRURED


A fbrica utilizada como referncia para testes possui hoje uma produo de quatro

tipos de mveis residenciais diferentes que so denominados por famlias. Dentre eles esto inclusos, armrios multiuso, camas e cabeceiras de casal e solteiro, penteadeiras, e guardaroupas de trs, quatro e cinco portas. Para fazer os testes com o mdulo BRURED no sistema CorteBi, utilizou-se como referncia um dos mveis fabricados para aproximar realidade do problema de gerao de padres de Corte. Na gerao de padres de corte para a produo de mveis, so levados em consideraes duas caractersticas principais para a classificao de um bom padro de corte. O primeiro critrio depende do nmero de itens com medidas distintas, quanto maior o nmero de itens diferentes em um padro de corte mais tempo ser despendido no seu processo de corte, o que pode diminuir a produtividade da empresa. Portanto h preferncia por padres de corte com o menor nmero de itens com medidas diferentes. O segundo critrio leva em considerao a perda de matria-prima, quanto menor a perda do material maior ser a sua aceitao (Cavali e Rangel, 2004). O mvel utilizado para teste um produto fabricado h algum tempo, no qual j se encontra em grande venda no mercado moveleiro: Armrio Berlim de cinco portas. Para a fabricao deste produto, necessrio o corte de trs tipos de objetos de diferentes espessuras de 3 mm , 15 mm e 18 mm. Cada objeto utilizado possui medidas de comprimento e larguras diferentes como relatado na Tabela 9.

Tabela 9: Objetos utilizados para fabricao do Armrio Berlim de cinco portas

Produto: Armrio Berlim de cinco portas Espessura dos objetos (mm) MDF 03 mm MDP 15 mm MDF 15 mm MDF 18 mm Comprimento (mm) 2440 2750 2750 2750 Largura (mm) 1850 1850 2440 1850

69

A dificuldade de gerar um plano de corte que seja eficiente e tenha perda mnima um dos grandes problemas enfrentados pelas indstrias do setor moveleiro. Para compor, por exemplo, um armrio Berlim de cinco portas, necessrio obter quarenta e um tipos de itens diferentes a serem cortados nos objetos (frente de gaveta pequena, fundo de maleiro, travessa da gaveta traseira, etc). Para realizar os testes com o mtodo BRURED utilizou-se somente um dos objetos MDF 3 mm onde so cortados sete itens diferentes para a composio do mvel. Os itens utilizados no teste para o objeto de 3 mm esto listados na Tabela 10.

Tabela 10: Itens utilizados no teste do BRURED

Descrio do Item 1 - Fundo camiseiro 2 - Fundo gaveteiro grande 3 - Fundo gaveteiro pequeno 3 - Divisoria do camiseiro 4 - Fundo gaveta grande 5 - Fundo maleiro 6 - Fundo gaveta pequeno

Comprimento 1120 630 630 505 632 550 445

Largura 450 498 340 315 445 450 445

Quantidade 350 140 280 210 420 350 420

De acordo com estes dados foram realizados dois testes de gerao de padres de corte. O primeiro com o mdulo de arredondamento e logo em seguida realizamos o mesmo teste, porm sem o mdulo de arredondamento. No total foram sete padres de corte gerados especificamente para o objeto que estamos utilizando no sistema CorteBi. Na tabela 11, podemos observar o nmero de objetos cortados para produo do armrio Berlim especificamente para as chapas de 3 mm (2440 x 1850).

70

Tabela 11: Testes e comparaes do uso do mtodo BRURED no arredondamento de solues inteiras

Produto: Armrio Berlim de cinco portas Testes SEM o mdulo BRURED Nmero do padro de Corte Padro_1 Padro_2 Padro_3 Padro_4 Padro_5 Padro_6 Padro_7 Total de Objetos Nmero de objetos cortados 21 14 5 22 12 20 11 105 Testes COM o mdulo BRURED Nmero do padro de Corte Padro_1 Padro_2 Padro_3 Padro_4 Padro_5 Padro_6 Padro_7 Total de Objetos Nmero de objetos cortados 21 13 4 22 11 20 10 101

O mdulo BRURED foi testado diretamente no mdulo de otimizao sem o uso da interface grfica do sistema. Atravs da anlise dos resultados mostrados na Tabela 11 podemos observar que a utilizao do mdulo BRURED resultou na diminuio de objetos cortados em relao ao teste sem o mdulo de arredondamento. Ao analisarmos os testes conseguimos observar que quatro padres dos sete utilizados para a fabricao dos itens foram reduzidos em uma unidade comprovando assim a eficcia do mtodo.

71

CAPTULO V - Concluso
Tendo em vista o objetivo de aprimorar o sistema CorteBi, considerando sua adequao a realidade da indstria moveleira, realizou-se neste estudo, fundamentalmente, a criao das documentaes da interface baseadas em diagramas UML(tais como Casos de Uso e diagramas de Classes) com o objeto de melhorar compreenso do sistema, e a incluso de um novo mdulo de arredondamento chamado BRURED a fim de se obter a diminuio do nmero de objetos cortados CorteBi. Para o aperfeioamento do sistema CorteBi sem, no entanto alterar suas funes, utilizamos dentro de um contexto mais amplo da reengenharia de software, o processo de engenharia reversa, capaz de auxiliar no desenvolvimento de sua melhor compreenso por meio da criao de vises adicionais grficas, ou seja, diagramas, que especificam as informaes anteriormente no documentadas, sendo parte determinante para melhor compreenso da funcionalidade do processo, podendo ainda influir na qualidade e produtividade evolutiva do sistema. Como suporte recuperao de modelos em uma notao padro, como a UML, utilizou uma ferramenta CASE (Computer-Aided Software Engineering) sistemas de software projetados para apoiar as atividades de rotina no processo de software , com o intuito de diminuir o custo ao final do processo, facilitar as possveis correes alm de realizar a documentao do sistema. Dentre as inmeras ferramenstas CASE que utilizam a UML como base para modelagem, fez-se uso do software Enterprise Architect para estruturar os diagramas, j que esta uma das ferramentas que mais oferecem recursos compatveis mais recente verso da UML. As documentaes pautaram-se em dois diagramas, o de Casos de Uso, o qual apresenta descrio sucinta da funcionalidade prevista em cada um dos casos de uso (Gerenciar Sistema CorteBi, Gerenciar Objetos, Gerenciar Projetos e Gerenciar Planos de Corte) e o papel exercido pelos atores representados no diagrama; e o diagrama de classes, teve por finalidade destacar as principais classes (Diagrama de Classes para operaes de Planos de Corte, Diagrama de Classes para operaes de Projeto e Diagrama de Classes para desenho de padres de corte) e seus atributos que refletem o domnio de negcios do sistema. O intuito da construo dos diagramas de Classes para a documentao foi o de demonstrar as classes que compem o sistema com seus respectivos atributos, bem como as associaes entre elas. 72

Alm da documentao grfica da interface atravs da tcnica de engenharia reversa, realizou-se neste trabalho a incluso de um novo mdulo de arredondamento ao CorteBi para obter uma melhor soluo inteira. No teste computacional realizado utilizamos dados reais da fbrica L para mostrar que a incluso do algoritmo de arredondamento permite diminuir a quantidade de objetos cortados sem deixar de atender a demanda da fbrica. De uma forma geral, para a realizao deste trabalho, foram realizados diversos testes na verso atual do sistema CorteBi para compreender o comportamento do sistema e ento modelar a documentao estrutural e comportamental, bem como aprimor-lo ao sugerir a utilizao do algoritmo BRURED e permitindo uma manipulao melhorada e mais intuitiva dos planos de corte. Para a realizao da atividade de manuteno do software e a criao da documentao, fora feita uma intensa avaliao do cdigo. Em relao trabalhos futuros, sugere-se a incluso do mtodo BRURED no sistema completo (mdulo de otimizao e mdulo de interface) e teste do sistema atualizado no ambiente da fbrica. Outra sugesto seria a recodificao do mdulo de otimizao em uma nova linguagem como a linguagem JAVA ou C++. Para a interface grfica, recomendamos a incluso de novas funcionalidades como a opo de imprimir padres de corte gerados para oferecer maior praticidade na visulizao final do resultado.

73

REFERNCIAS BIBLIOGRFICAS:

ABIMVEL. Brasil Mveis 2008: Relatrio Setorial da Indstria de Mveis no Brasil. Associao Brasileira das Indstrias do Mobilirio, 2008.

AMBLER, Scott W. Agile Documentation. 2001-2004, The Official Agile Modeling (AM) Site, 2011, Disponvel em: http://www.agilemodeling.com/essays/agileDocumentation.htm. Acesso em: 12 maio de 2011.

ARENALES, M. N.; MORABITO, R.; YANASSE, H. H. Problema de Corte e Empacotamento. In: Simpsio Brasileiro de Pesquisa Operacional, 36, 2004, So Joo del Rei. Anais do XXXVI SBPO. So Joo del Rei: [s.n.], 2004.

BARBOSA, T. H.; Interface Grfica e Banco de Dados - Uma Nova Verso do Sistema Cortebi, 2009. Monografia (Graduao em Cincia da Computao) UNESP, So Jos do Rio Preto. 2009.

BEZERRA, E.; Princpios de Anlise e Projeto de Sistemas com UML. Rio de Janeiro: Elsevier, 2002.

BOOCH, G.; RUMBAUGH,J.; JACOBSON,I.; UML Guia do Usurio. Rio de Janeiro: Elsevier, 2000.

CAVALI, R.; Problemas de Corte e Empacotamento na Indstria de Mveis: Um Estudo de Caso. 2004, 87 f. Dissertao (Mestrado em Matemtica Aplicada - UNESP, So Jos do Rio Preto/SP. 2004.

CAVALI, R.; RANGEL, S.; Introduo ao sistema CorteBi. So Jos do Rio Preto: [s.n.], 2004b.

COIN-OR. Disponvel em http://www.coin-or.org/. Acessado em 02 de Maio de 2011.

74

DYCKHOFF, H. A typology of cutting and packing problems. European Journal of Operational Research, v. 44, p. 145-159, 1990.

FIGUEIREDO, A. G.; Anlise de Produtividade de Padres de Corte na Indstria de Mveis. 2005. 107f. Dissertao (Mestrado em Matemtica Aplicada) - UNESP, So Jos do Rio Preto. 2005.

FORWARD, Andrew. Software Documentation Building and Maintaining Artefacts of Comunication, 2002. Teste de Mestrado, Universidade de Ottawa, Ottawa, Toronto, Canad.

GILMORE, P.C.; GOMORY, R. E. A linear programming approach to the cutting-stock problem. Operations Research.v.9, p.849-859, 1961

GILMORE, P.C.;GOMORY, R.E. A linear programming approach to the cutting-stock problem - partii. Operations Research.v.11, p.863-888,1963.

GILMORE, P.C.;GOMORY, R.E. Multi stage cutting stock problems of two and more dimensional. Operations Research.v.14, p.1045-1074, 1965.

GUEDES, G. T.: UML - Uma abordagem prtica 2 Edio - So Paulo: Novatec, 2004.

GUEDES, GILLEANES. T. A.: UML 2 : Uma abordagem prtica - So Paulo: Novatec Editora, 2009.

LEMOS, R.B. Reengenharia de Software do Sistema CorteBi com a incluso de novas funcionalidades, 2005. 107f. Monografia (Graduao em Cincia da Computao) UNESP, So Jos do Rio Preto. 2005.

LETHBRIDGE, Timothy C.; SINGER Janice; FORWARD, Andrew. How Software Engineers Use Documentation: The State of the Pratice, IEEE Software, Novembro, 2003, IEEE, p.35-39.

75

MARTINS, A. T.; Estratgias para reduo de ciclos da serra no problema de corte de estoque na indstria moveleira.Dissertao Mestrado, IBILCE-UNESP, 2010.

MEDINA, Enrique A.; Some Aspects of Software Documentation, Proceedings of the 3rd annual international conference on Systems documentation (SIGDOC84), Cidade do Mxico, 1984, p.57-59.

MOSQUERA, G. P. Contribuies para o Problema de Corte de Estoque Bidimensional na Indstria Moveleira. Dissertao de Mestrado, IBILCE-UNESP, 2007.

MORAES, M. A. F. D. Estudo da competitividade de cadeias integradas no Brasil: Impactos das zonas de livre comrcio. Relatrio tcnico, UNICAMP, 2002.

PORTAL MOVELEIRO. Plos moveleiros. Disponvel em http://www.portalmoveleiro.com.br/polos/polos abertura.html. Acessado em: 19/02/2011.

PERIN, C.; RANGEL, S. O Problema do Corte Bidimensional. In: CONGRESSO NACIONAL DE MATEMTICA APLICADA E COMPUTACIONAL, 12., 1989. So Jos do Rio Preto. Anais do XII CNMAC. So Jos do Rio Preto: [s.n.], 1989.

PRESSMAN, R. S. Engenharia de software. So Paulo: Makron Books, 2006.

OAT Solutions. Disponvel em: http://www.oatsolutions.com.br/artigos/Comparativo_CASES_v3.pdf. Acessado em 07 de Maio de 2011.

OMG. Disponvel em http://www.omg.org/spec/UML/. Acessado em 10 de Abril de 2011. RANGEL, S. O Problema do Corte Bidimensional. Dissertao. 1989. 97f. Dissertao (Mestrado em Matemtica Aplicada) - UNICAMP, Campinas. 1989.

RANGEL, S. Introduo construo de modelos de otimizao linear e inteira. 1. ed. So Carlos-SP: Sociedade Brasileira de Matemtica Aplicada e ComputacionalSBMAC, 2005. v. nico. 82 p. 76

RANGEL, S. e FIGUEIREDO, A.; O problema de corte de estoque em indstria de mveis de pequeno e mdio portes. Pesquisa Operacional.v.28, n.3, p.451-472, 2008.

RANGEL, S.; LEMOS, R. B. Manual do sistema CorteBI Interface Grca. Departamento de Cincias de Computao e Estatstica - DCCE/UNESP, So Jos do Rio Preto, 2008.

SILVA, E. M.; SANTOS, F. C. A. Anlise do alinhamento da estratgia de produo com a estratgia competitiva na indstria moveleira. Revista Produo, v.15, n 2, p. 286-292, 2005.

SOMERVILLE, I. Engenharia de Software 8ed. So Paulo: Pearson Addison-Wesley, 2007.

SOUZA, Srgio C. B. de; NEVES, Wesley C. G. das; ANQUETIL, Nicolas; OLIVEIRA, Kthia M. de. Investigao da Documentao de Maior Importncia para Manuteno de Software, artigo aceito na 4 Jornadas Iberoamericanas de Ingeniera del Software e Ingeniera del Conocimiento (JIISIC'04), Outubro, 2004.

TEODORO, A. Augusto. O Problema do Corte Bidimensional: uma abordagem utilizando o mtodo de gerao de colunas. Dissertao (Mestrado Profissional em Computao) Universidade Estadual de Campinas, Instituto de Computao. Campinas, 2003.

TILLEY, Scott R.; MLLER, Hausi A.. INFO: A Simple Document Annotation Facility, Proceedings of the 9th annual international conference on Systems documentation (SIGDOC91), ACM Press, 1991, p.30-36.

YANASSE, H. H.; LIMEIRA, M. S. A hybrid heuristic to reduce the number of different patterns in cutting stock problems.

WSCHER, G.; GAU, T. Heuristics for the Integer One-dimensional Cutting Stock Problem: a computational study. ORSpektrum.v.18, p.130-148, 1996.

WONG Kenny, TILLEY, Scott R.; MLLER, Hausi A.; STOREY Margaret-Anne D. Structural Redocumentation: A Case Study, IEEE Software, Janeiro, 1995, p.46-54. 77

WSCHER, G.; HAUBNER, H.; SCHUMANN, H. An improved typology of cutting and packing problems. European Journal of Operational Research v.183, p.1109 - 1130, 2007.

78