marcio bastos bsi tcc

110
FACULDADE DAS INDÚSTRIAS – FAMEC MÁRCIO BASTOS APLICATIVO PARA RESOLUÇÃO DE PROBLEMAS DE PROGRAMAÇÃO LINEAR

Upload: christiano-jose-goncalves

Post on 16-Jan-2016

42 views

Category:

Documents


2 download

DESCRIPTION

pesquisa operacional

TRANSCRIPT

Page 1: Marcio Bastos BSI TCC

FACULDADE DAS INDÚSTRIAS – FAMEC

MÁRCIO BASTOS

APLICATIVO PARA RESOLUÇÃO DE PROBLEMAS DE PROGRAMAÇÃO LINEAR

SÃO JOSÉ DOS PINHAIS

JUNHO / 2014

Page 2: Marcio Bastos BSI TCC

MÁRCIO BASTOS

APLICATIVO PARA RESOLUÇÃO DE PROBLEMAS DE PROGRAMAÇÃO LINEAR

Trabalho apresentado à disciplina de Trabalho de Conclusão de Curso, sob solicitação da professora Cassiana Fagundes da Silva para obtenção de nota no oitavo período do curso de Bacharelado em Sistemas de Informação.

SÃO JOSÉ DOS PINHAIS

JUNHO / 2014

Page 3: Marcio Bastos BSI TCC

ii

Page 4: Marcio Bastos BSI TCC

RESUMO

O trabalho apresentará como foco principal o desenvolvimento de um

aplicativo voltado a Pesquisa Operacional, especificamente para Programação

Linear e a importância da utilização de um aplicativo que auxilie durante a execução

dos problemas que envolvem a programação linear.

Com a Programação Linear, pode se resolver inúmeros problemas que

envolvem alocação de recursos, rotas, pessoas ente outros, dependendo do ramo

que for utilizado, com isso percebe – se que a importância da Pesquisa Operacional

que vai além de apenas resolver problemas matemáticos, mais também pode

solucionar problemas do nosso cotidiano.

Com este trabalho, o leitor compreenderá os conceitos relacionais a Pesquisa

Operacional, Programação Linear e demais subitens, e compreender a importância

da utilização do aplicativo em questão para solucionar os problemas envolvendo

Programação Linear.

Palavras – Chaves: Pesquisa Operacional, Programação Linear, Aplicativo.

iii

Page 5: Marcio Bastos BSI TCC

LISTA DE TABELAS

TABELA 1 – NÚMEROS E INCÓGNITAS.................................................................24TABELA 2 – SINAIS DE RESTRIÇÃO.......................................................................24TABELA 3 – REGRAS...............................................................................................25TABELA 4 – EXEMPLIFICAÇÃO...............................................................................25TABELA 5 – MANTER ARQUIVO..............................................................................26TABELA 6 – EDITAR ARQUIVO................................................................................27TABELA 7 – EXECUTAR O ARQUIVO.....................................................................27TABELA 8 – ACESSAR CONTEÚDO DE AJUDA.....................................................28TABELA 9 – CRIAR NOVO ARQUIVO......................................................................29TABELA 10 – ABRIR O ARQUIVO............................................................................30TABELA 11 – SALVAR O ARQUIVO.........................................................................31TABELA 12 – SALVAR ARQUIVO COMO................................................................33TABELA 13 – SELECIONAR SAIR............................................................................34TABELA 14 – EXECUTAR ARQUIVO.......................................................................35TABELA 15 – DESFAZER ALTERAÇÕES NO ARQUIVO........................................37TABELA 16 – REFAZER ALTERAÇÕES NO ARQUIVO...........................................38TABELA 17 – RECORTAR CONTEÚDO DO ARQUIVO...........................................38TABELA 18 – COPIAR CONTEÚDO DO ARQUIVO.................................................39TABELA 19 – COLAR CONTEÚDO NO ARQUIVO...................................................40TABELA 20 – SELECIONAR TODO O CONTEÚDO DO ARQUIVO.........................40TABELA 21 – DELETAR O CONTEÚDO DO ARQUIVO...........................................41TABELA 22 – OBTER AJUDA...................................................................................42TABELA 23 – OBTER INFORMAÇÕES SOBRE O APLICATIVO.............................43TABELA 24 – ÍNDICE DE ATIVIDADES PARAO CRONOGRAMA...........................53TABELA 25 – CRONOGRAMA..................................................................................53

iv

Page 6: Marcio Bastos BSI TCC

LISTA DE ILUSTRAÇÕES

FIGURA 1 – MODELO MATEMÁTICO......................................................................10FIGURA 2 – SUPORTE DO SCPSOLVER................................................................18FIGURA 3 – ESTRUTURA BÁSICA DO ECLIPSE....................................................19FIGURA 4 – ASTAH COMMUNITY...........................................................................20FIGURA 5 – CASO DE USO GERAL........................................................................26FIGURA 6 – MANTER O ARQUIVO..........................................................................29FIGURA 7 – EXECUTAR ARQUIVO.........................................................................35FIGURA 8 – EDITAR O ARQUIVO............................................................................37FIGURA 9 – OBTER AJUDA.....................................................................................42FIGURA 10 – EDITAR O ARQUIVO..........................................................................44FIGURA 11 – MANTER O ARQUIVO........................................................................45FIGURA 12 – EXECUTAR O ARQUIVO....................................................................46FIGURA 13 – SELECIONAR AJUDA.........................................................................47FIGURA 14 – INÍCIO.................................................................................................48FIGURA 15 – MENSAGEM........................................................................................48FIGURA 16 – IO.........................................................................................................49FIGURA 17 – CÓDIGO..............................................................................................50FIGURA 18 – EQUAÇÃO...........................................................................................51FIGURA 19 – TELAS.................................................................................................52FIGURA 20 – TELA INICIAL......................................................................................55FIGURA 21 – MENU ARQUIVO................................................................................56FIGURA 22 – MENU EDITAR....................................................................................57FIGURA 23 – MENU EXECUTAR ARQUIVO............................................................58FIGURA 24 – MENU DE AJUDA...............................................................................59FIGURA 25 – ABRIR ARQUIVO................................................................................60FIGURA 26 – SALVAR ARQUIVO.............................................................................61FIGURA 27 – TELA DE RESULTADO DE MODELO COM SOLUÇÃO....................62FIGURA 28 – TELA DE RESULTADO DE MODELO SEM SOLUÇÃO.....................63FIGURA 29 – TELA DE AJUDA.................................................................................64FIGURA 30 – TELA DE ALERTA PARA SOBRESCREVER ARQUIVO...................65FIGURA 31 – TELA DE ALETAR PARA SALVAR.....................................................66FIGURA 32 – TELA SOBRE O OPTILIANA..............................................................66FIGURA 33 – TELA DE ERRO CAUSADA POR UM ELEMENTO QUE NÃO FAZ PARTE DO MODELO................................................................................................67FIGURA 34 - ORDEM ERRADA DOS ELEMENTOS DO MODELO.........................68FIGURA 35 – TELA DE ERRO OCASIONADA POR CARACTERE INVÁLIDO........69FIGURA 36 – TELA DE ERRO CAUSADA POR EXECUTAR UM ARQUIVO QUE NÃO É CONTÉM UMA PL.........................................................................................70FIGURA 37 – TELA DE ERRO AO EXECUTAR SEM SELECIONAR MAXIMIZAR OU MINIMIZAR..........................................................................................................71

v

Page 7: Marcio Bastos BSI TCC

LISTA DE SIGLAS E ABREVIATURAS

ASCII American Standard Code for Information Interchange

C Linguagem de Programação

C++ Linguagem de Programação

CPLEX Biblioteca de Programação Linear da IBM

CVS Concurrent Version System

GNU General Public License

GLPK GNU Linear Programming Kit

GUI Graphical User Interface

Hardware Parte Física de um computador

IBM International Business Machines

IDE Ambiente de Desenvolvimento Integrado

IO Input/Output

JAVA Linguagem de Programação

JDK Java Development Kit

JRE Java Runtime Envioronment

JVM Java Virtual Machine

LINUX Sistema Operacional

LPSOLVER Biblioteca de Programação Linear Open Source

MAC OS Sistema Operacional

MYSQL Banco de Dados

OAK Linguagem de Programação

OO Orientado a Objeto

PL Programação Linear

PO Pesquisa Operacional

POJO Plain Old Java Objects

POO Programação Orientada a Objetos

UML Unified Modeling Language

WINDOWS Sistema Operacional

vi

Page 8: Marcio Bastos BSI TCC

SUMÁRIO

1 INTRODUÇÃO..........................................................................................................12 PESQUISA OPERACIONAL....................................................................................32.1 MODELAGEM MATEMÁTICA...............................................................................52.1.1 Definição do Problema e Coleta de Dados.........................................................62.1.2 Formulação e Construção do Modelo.................................................................62.1.3 Solução do Modelo.............................................................................................72.1.4 Validação do Modelo..........................................................................................72.1.5 Aplicação do Modelo...........................................................................................82.2 PROGRAMAÇÃO LINEAR ...................................................................................92.2.1 Itens da Programação Linear............................................................................112.2.2 Algumas Aplicações Da Programação Linear...................................................123 FERRAMENTAS E TECNOLOGIAS......................................................................143.1 JAVA....................................................................................................................143.1.1 Características da Linguagem Java..................................................................153.2 PROGRAMAÇÃO ORIENTADA A OBJETOS.....................................................163.3 BIBLIOTECAS DE PROGRAMAÇÃO LINEAR....................................................173.3.1 Gnu Linear Programming Kit (Glpk)..................................................................173.3.2 SCPSolver........................................................................................................183.4 ECLIPSE..............................................................................................................193.5 ASTAH.................................................................................................................204 SISTEMA PROPOSTO...........................................................................................224.1 OBJETIVO GERAL DO SISTEMA.......................................................................224.2 REQUISITOS FUNCIONAIS DO SISTEMA.........................................................224.3 REQUISITOS NÃO FUNCIONAIS DO SISTEMA................................................234.4 DIAGRAMA DE CASO DE USO..........................................................................254.4.1 Diagrama de Caso de uso geral.......................................................................254.4.2 Caso de Uso Especifico Manter Arquivo...........................................................284.4.3 Caso de uso Executar arquivo..........................................................................354.4.4 Caso de Uso Editar Arquivo..............................................................................364.4.5 Acessar conteúdo de ajuda...............................................................................424.5 DIAGRAMAS DE SEQUENCIA...........................................................................444.6 DIAGRAMAS DE CLASSE..................................................................................475 CRONOGRAMA.....................................................................................................536 RESULTADOS OBTIDOS......................................................................................546.1 CARACTERISTICAS BASICAS...........................................................................556.2 CARACTERISTICAS DE ENTRADA E SAIDA....................................................596.3 CARACTERISTICAS DOS RESULTADOS.........................................................616.4 CARACTERISTICAS INFORMATIVAS...............................................................646.5 CARACTERISTICAS DE ALERTA......................................................................677 CONSIDERAÇÕES FINAIS....................................................................................72REFERÊNCIAS.........................................................................................................73

vii

Page 9: Marcio Bastos BSI TCC

1

1 INTRODUÇÃO

A pesquisa operacional tem contribuído muito para o desenvolvimento

econômico de muitos países, sendo uma dessas contribuições o aumento da

produtividade em diversas áreas, uma das áreas dentro da pesquisa operacional é a

programação linear que desde 1950 tem sido de grande importância para as mais

diversas organizações ao redor do mundo, poupando milhares de dólares, por esse

motivo hoje a maior parte da computação cientifica é dedica à programação linear,

essa técnica por sua vez utiliza de modelos matemáticos com funções lineares para

resolver os mais variados problemas encontrados na sociedade em geral. (HILLIER ,

2006).

O presente trabalho tem como objetivo geral o desenvolvimento de um

aplicativo para resolução de problemas de programação linear, especificamente um

editor.

Objetivando especificamente pesquisas bibliográficas sobre pesquisa

operacional, modelagem matemática, programação linear, ferramentas e tecnologias

a ser utilizada assim como o desenvolvimento do sistema proposto.

E também será apresentado neste trabalho tecnologias como a linguagem de

programação Java, programação orientada a objetos, Editor eclipse, biblioteca de

programação Linear GLPK, SCPSolver entre outros, afim de auxiliar no

desenvolvimento do sistema.

Ao término desta pesquisa espera-se que o pesquisador tenha uma visão

clara do caminho para desenvolvimento de sistemas que tenham como requisito a

resolução de problemas de programação linear.

A estrutura deste trabalho será organizada conforme segue:

O capitulo 1 apresenta uma breve introdução sobre o que será descrito no

decorrer do trabalho.

No capitulo 2 é realizado a fundamentação teórica sobre a Pesquisa

Operacional, modelagem matemática, juntamente com a explicação de

Programação Linear e seus subitens.

O capitulo 3 é descrito as ferramentas e tecnologias usadas para a execução

do sistema proposto.

O capitulo 4 aborda o projeto de desenvolvimento do aplicativo, contendo o

projeto lógico.

Page 10: Marcio Bastos BSI TCC

2

No capítulo 5 é descrito o cronograma do trabalho.

No capítulo 6 são apresentados os resultados obtidos.

No capítulo 7 se encontra as considerações finais sobre os conhecimentos

adquiridos durante a pesquisa.

Page 11: Marcio Bastos BSI TCC

3

2 PESQUISA OPERACIONAL

Desde a revolução industrial até os dias atuais, algumas empresas cresceram

e se tornaram complexas, ou seja, as oficinas de artesãos evoluíram para grandes

corporações, e gerando grande divisão de trabalho e a segmentação das

responsabilidades gerenciais que se tornariam os propulsores que contribuíram para

o aumento dessas instituições.

Desde o advento da revolução industrial, o mundo presencia um crescimento extraordinário no tamanho e complexidade das organizações. As pequenas oficinas de artesãos de outrora evoluíram para as corporações bilionárias de hoje. Um fator crucial dessa mudança revolucionaria foi o extraordinário aumento na divisão do trabalho e a segmentação das responsabilidades gerenciais nessas organizações. (HILLIER; LIEBERMAN, 2006, p. 01).

O aumento do tamanho das organizações pode resultar em complexidade e

alta especialização das operações, assim então, gerar conflitos de atividades

exercidas pelas organizações, surgindo também, dificuldades para alocar recursos.

Sendo assim, essas dificuldades contribuíram para o surgimento da pesquisa

operacional, pois a mesma tende a ser uma ferramenta de grande importância para

alocar recursos, pessoas, elaboração de rotas, entre outros. Ao inserir esta

metodologia nas empresas é gerado um ganho considerável para a instituição, pois

a mesma consegue administrar melhor os seus recursos e processos, fazendo com

que a empresa consiga se tornar ou se manter competitiva.

Em Taha (2008) é afirmado que foi na Inglaterra, no período em que ocorria a

segunda guerra mundial que a pesquisa operacional teve seu primeiro uso formal,

onde cientistas optaram por tomar decisões baseadas na ciência, assim otimizando

os processos das forças armadas dos países aliados, ao fim da guerra, as técnicas

viriam a ser adaptadas ao uso civil.

Então pode se dizer que a atividade denominada de PO foi atribuída na

segunda guerra mundial, com a necessidade de alocar recursos de forma eficiente

nas operações militares, assim como, nas atividades exercidas nessas operações.

No decorrer da guerra, os comandos militares convocaram cientistas para resolver

de modo científico os problemas de táticas e estratégia. “Quando a guerra acabou, o

sucesso do empreendimento bélico despertou interesse na sua aplicação fora do

ambiente militar” (HILLIER , 2006, p. 02).

Page 12: Marcio Bastos BSI TCC

4

Pode-se dizer que as origens da pesquisa operacional, as suas raízes estão

firmadas em um passado distante, ou seja, muitos cientistas já vêm ao decorrer da

história da ciência elaborando técnicas a fim de se obter o ótimo de cada operação,

tentando resolver problemas da melhor forma possível com o mínimo possível de

recursos, distâncias e esforço.

Podemos dizer que a busca pelo ótimo encontra as suas raízes na antiguidade. Podemos citar Euclides, Newton, Euler, Monge, Lagrange, Hamilton, Leontief, Von Neumann... Gaspard monge, por exemplo, publicou em 1781, num trabalho intitulado “Mémoire sur la théorie des déblas et des remblais”, um estudo sobre o melhor caminho para mover pedras de um lugar para outro. (NETO, 2009, p.01)

Ao final da guerra sociedade, em específico a indústria, pode usufruir de um

ganho considerável no campo da pesquisa operacional, pois os cientistas envolvidos

na aplicação da PO durante a guerra, assim como outros cientistas que viriam a se

interessar pela área desenvolveram pesquisas que resultaram em grande melhoria

dos métodos utilizados. Em contrapartida, nesse momento da história da

humanidade estava surgindo uma nova ferramenta, o computador, onde tal

fenômeno é descrito por Hillier (2006) como “avalanche” da revolução

computacional, a informática por sua vez, viria ser uma ferramenta de extrema

utilidade para resolver problemas modelados com as técnicas de pesquisa

operacional.

Após a guerra, muitos dos cientistas que haviam participado da equipe de PO ou que ouviram falar a esse respeito motivaram-se para desenvolver pesquisas relevantes nesse campo resultando em avanços importantes no estado-da-arte. [...] Um segundo fator que deu ímpeto ao crescimento desse campo foi a “avalanche” da revolução computacional. (HILLIER, 2006, p. 02).

Segundo Hillier (2006) pesquisa operacional é a especificação para pesquisa

sobre operações, essa técnica é aplicada em problemas de condução, coordenação

de operação em áreas tais como: manufaturas, transportes, construção,

telecomunicação, financeiro, assistência medica, militar e serviços públicos. Além

disso, ainda segundo Hillier (2006) a PO, tem contribuído de forma significativa na

melhoria da economia de países que faz seu uso.

Segundo Taha (2008) existem vários métodos para resolver problemas com

pesquisa operacional.

Page 13: Marcio Bastos BSI TCC

5

Ou seja, cada contexto, cada problema, deve ser analisado objetivando a

aplicação da técnica que mais se encaixa no contexto a ser resolvido, dentre as

inúmeras áreas, ou seja, categorias, as técnicas dentro da pesquisa operacional,

vale ressaltar que ao decorrer da história a técnica mais utilizada vem sendo a

programação linear.

Em PO, não temos uma única técnica para resolver todos os modelos matemáticos que podem surgir na prática. Em vez disso, o tipo e a complexidade do modelo matemático é que determinam a natureza do método de solução. [...] A técnica mais utiliza em PO é a programação linear. Ela é aplicada a modelos cujas funções objetivo e restrição são lineares. (TAHA, 2008, p.02)

Pode ser visto que é ao final da modelagem matemática que é determinado o

método de solução, pois cada modelo se enquadra melhor em uma determinada

categoria da pesquisa operacional.

2.1 MODELAGEM MATEMÁTICA

Modelagem matemática se da através de um conjunto de atividades que tem

por objetivo a criação de um modelo matemático, basicamente a modelagem

matemática é composta por cinco atividades, sendo elas: a experimentação, onde se

obtém os dados; a abstração, onde são desenvolvidos os modelos matemáticos; a

resolução, onde se resolve o problema com técnicas; a validação, onde é verificado

se o modelo realmente faz o que se propõe; a modificação, manutenção do modelo

a fim de se obter a perfeição e adaptação a novos requisitos.

Segundo Bassanezi (2002 apud NETO, 2009), a modelagem matemática

consiste de cinco atividades, experimentação, abstração, resolução, validação e a

modificação.

Para Hillier (2006) a modelagem da PO consiste na definição do problema e

coleta de dados, formulação de um problema matemático, derivar soluções a partir

do modelo, o teste do modelo e aplicação do modelo.

Em Taha (2008) é descrito que para desenvolver um modelo de PO, é

utilizado um processo que contem cinco etapas, sendo elas: Definição do problema;

construção do modelo; Solução do modelo; validação do modelo; implementação da

solução.

Page 14: Marcio Bastos BSI TCC

6

2.1.1 Definição do Problema e Coleta de Dados

Muitas vezes as equipes de PO enfrentam contextos onde o problema a ser

resolvido esta pouco evidente devido à complexidade do ambiente em que ele está

contido, onde a equipe tem apenas descrições vagas e imprecisas, e a partir desde

contexto será necessário abstrair os elementos da modelagem matemática, em todo

caso pode se dizer que a definição do problema e coleta de dados é a etapa onde o

problema é definido, e em seguida criasse um enunciado, ou seja, elaborasse uma

primeira interpretação do problema a ser resolvido. Feito isto, deve-se determinar os

objetivos e as restrições sobre o que deve ser feito.

A maioria dos problemas práticos enfrentados pelas equipes de PO é inicialmente descrita a eles de uma forma vaga e imprecisa [...] Isso abrange determinar coisas como os objetivos apropriados, restrições sobre o que pode ser feito. (HILLIER, 2006, p.08).

Porém em Taha (2008) é afirmado que a definição do escopo se dá através

da investigação, onde são identificados três elementos essenciais para um modelo

de decisão sendo eles: a descrição das alternativas de decisão, que são as variáveis

do modelo; o objetivo de estudo, que é o objetivo que se pretende chegar com a

resolução do problema; as limitações do modelo, o universo que o modelo

trabalhara, as suas limitações, as variáveis de decisão e as restrições.

A meta é identificar três elementos principais de um problema de decisão: (1) descrição das alternativas de decisão, (2) determinação do objetivo de estudo e (3) especificações das limitações sob as quais o sistema modelado funciona. (TAHA, 2008, p.04).

Ou seja, descrever as alternativas de decisão, determinar os objetivos a ser

estudado e especificar as limitações do funcionamento do sistema modelado.

2.1.2 Formulação e Construção do Modelo

A formulação de um problema matemático e a construção do modelo envolve

em transformar o problema real em uma formulação matemática, onde se tornara

evidente ou não a utilização de uma estratégia, seja ela através da programação

linear, ou de qualquer outra técnica. “implica uma tentativa de traduzir a definição do

problema em relações matemáticas” (TAHA, 2008, p.04).

Page 15: Marcio Bastos BSI TCC

7

A definição do modelo e discussão sobre o modelo criado é de grande

importância, pois um modelo mal formulado e confiado como certo vai logicamente

atrapalhar muito em vez de ajudar a instituição em suas operações ou decisões, fica

evidente então que a modelagem deve ser correta, deve estar correta no que diz

respeito ao negócio.

Para Hillier (2006) a formulação se dá através da construção de um modelo

matemático que descreve o problema. Porem, para isso a equipe deve discutir sobre

o modelo criado, assim como a sua abordagem matemática, Hillier (2006) afirma

também que os modelos são representações de ideias e que tem grande grau de

importância no mundo dos negócios.

2.1.3 Solução do Modelo

Ao criar um modelo matemático para resolução de um problema e equipe de

pesquisa operacional deve decidir a forma como será abordado o procedimento a

fim de derivar soluções, conforme as dimensões do modelo aumentam se torna

imprescindível a utilização do computador para trazer essas soluções.

Após a formulação de um problema matemático para o problema em questão, a próxima fase em um estudo de PO é desenvolver um procedimento (normalmente baseado em computador) para derivar soluções para o problema desse modelo. (HILLIER, 2006, p 15)

Taha (2008) afirma que esta etapa é a solução do modelo, é por si a mais

simples de todas as outras etapas, afirma também que nesta etapa são utilizados

algoritmos de otimização bem definidos.

Ao derivar soluções se cria uma demanda, onde se torna essencial o uso de

computadores para auxiliar no processo de derivação de soluções, também é

afirmado que na maioria dos casos, esta etapa de solução do modelo não é a etapa

principal de estudo.

2.1.4 Validação do Modelo

Validar o modelo é uma etapa importante, pois ele será usado inúmeras

vezes ao decorrer do tempo, tornando-se crucial o seu funcionamento, essa

validação é feita verificando se os resultados fazem sentido, se os números são

Page 16: Marcio Bastos BSI TCC

8

familiares referentes ao contexto em que está sendo aplicado e se esses resultados

são aceitáveis, outra característica é que os modelos criados tende a evoluir ao

decorrer do tempo, assim como um sistema o modelo matemático também requer

manutenção, onde são inseridas restrições ou até adaptação a um tipo de ambiente

novo, enfim, ele evolui.

Verifica se o modelo proposto faz ou não o que diz fazer – isto é, ele prevê adequadamente o comportamento do sistema em estudo? Inicialmente a equipe de PO deve estar certa de que o resultado do modelo não inclua “surpresas”. Em outras palavras a solução faz sentido? (TAHA, 2008, p.04)

Desenvolver um modelo matemático extenso é parecido com o

desenvolvimento de um sistema computacional “desenvolver um modelo matemático

de grandes dimensões é análogo, em certos aspectos, a desenvolver um programa

de computador muito extenso” (HILLIER, 2006, p. 17). Pois, assim como um sistema

de computador, que depois de pronto pode apresentar algumas anomalias que

necessitam de reparos ou inserção de melhoria e adaptação a um novo contexto, de

modo geral isso também pode ocorrer em um modelo matemático.

2.1.5 Aplicação do Modelo

Esta etapa é onde a equipe de pesquisa operacional se prepara para aplicar o

modelo, neste momento, se for definido que o modelo é para uso repetitivo, devesse

então, instalar um sistema bem documentado, assim como predito pela gerência.

Em muitos casos são necessários vários meses para desenvolver, testar e instalar

este sistema. Neste contexto em que se refere a modelagem matemática a palavra

sistema se refere ao modelo em si, ou seja, o modelo matemático também pode ser

descrito como um sistema.

Se o modelo for para ser usado repetidamente, a próxima etapa é instalar um sistema bem-documentado para aplicação do modelo conforme prescrito pela gerência. [...] Na maioria dos estudos de PO, podem ser necessários vários meses ( ou mais ) para desenvolver, testar e instalar esse sistema computacional. (HILLIER , 2006, p. 19).

Por outro lado Taha (2008) afirma que se devem validar os resultados,

transformando-os em instruções claras para as pessoas que administrarão o sistema

recomendado.

Page 17: Marcio Bastos BSI TCC

9

Deve existir uma documentação visando proporcionar um uso claro do

modelo por parte dos usuários que farão seu uso, de forma geral os resultados

obtidos também devem ser documentado, pois o usuário deve ter noção clara do

que significa cada item que faz parte do resultado.

2.2 PROGRAMAÇÃO LINEAR

A programação linear está entre os maiores e mais importantes avanços

científicos do século XX, as instituições fazem seu uso, tendo como objetivo obter

soluções ótimas para as mais variadas categorias de problemas. “Podemos dizer

que é aquela que melhor serve aos objetivos das pessoas e das organizações.

Nessa situação, podemos citar como exemplo o propósito de encontrar o lucro

máximo com custo mínimo” (BARBOSA e ZANARDI, 2010, p13), dessa forma

aprimorando seus processos e obtendo como resultado a minimização de gastos e

maximização de lucro, além disso, outros setores sociais também encontraram

utilidade para aplicar a programação linear, e assim, também usufruindo da técnica.

No decorrer do tempo vindo dos anos de 1950, a programação linear tem

ajudado empresas a sobreviverem em um mercado competitivo, pode ser dito que

ao aplicar às técnicas de programação as empresas têm evitado prejuízo e gastos

em proporção de milhões de dólares, sendo uma ferramenta padronizada dentro de

certas empresas.

O desenvolvimento da programação linear tem sido classificado entre os mais importantes avanços científicos dos meados do século XX e temos que concordar com essa afirmação. Seu impacto desde 1950 tem sido extraordinário. Hoje em dia é uma ferramenta-padrão que poupou muitos milhares ou milhões de dólares para muitas empresas ou até mesmo negócios de tamanho moderado em diversos países industrializados ao redor do mundo; e seu emprego em outros setores da sociedade se espalhou rapidamente. (HILLIER , 2006, p. 25).

Muitas empresas de sucesso fazem uso da programação linear para auxiliar

na tomada de decisão, aplicando a mesma em uma infinidade de problemas

encontrados em uma grande quantidade de negócios.

Uma pesquisa feita pelo Departamento de Computação do Imperial College

em Londres mostra que 85% das empresas citadas na Fortune 500 utilizam a

programação linear para ajudar as mesmas na tomada de decisão.

Page 18: Marcio Bastos BSI TCC

10

É observado que de certa forma a programação linear ajuda as empresas a

chegarem ao sucesso, pois é evidente o grande numero de empresas de sucesso

que fazem o seu uso.

Segundo comentários de pesquisadores do Departamento de Computação do Imperial College de Londres, uma pesquisa realizada junto às empresas listadas na Fortune 500, 85% das empresas que responderam à pesquisa afirmaram que utilizam a programação linear como uma ferramenta para tomada de decisões (NOGAMI, 2004)

Segundo Hillier (2006) para resolver problemas de programação linear é

usada à modelagem matemática, onde a mesma é composta obrigatoriamente por

funções lineares.

Um grupo de funções lineares faz com que o sistema matemático modelado

obedeça a uma regra lógica de um determinado comportamento proposto a ser

seguido, limitando assim ao sistema gerar resultados que obedeçam e sigam as

regras impostas, criadas pelas funções lineares, ou seja, restrições.

Também em Barboza (2005) é dito que um problema de programação linear

(PL) é composto por três itens, a função objetivo, as restrições das variáveis de

decisão contendo relação e linearidade e por último as variáveis de decisão.

FIGURA 1 – MODELO MATEMÁTICO

FONTE: (O AUTOR).

A programação linear é uma técnica dentre outras da pesquisa operacional,

no entanto existem varias categorias de problemas dentro da pesquisa operacional

que podem ser resolvidos através da técnica de programação linear existem também

Page 19: Marcio Bastos BSI TCC

11

métodos e algoritmos utilizados para resolver problemas de programação linear, um

exemplo de método bastante utilizado é o simplex, pois seu uso não se restringe

facilmente ao tamanho do problema a ser resolvido. “um procedimento de solução

extraordinariamente eficiente, chamado método simplex, se encontra disponível para

solucionar até mesmo problemas de programação linear de enormes

dimensões.”(HILLIER, 2006, p.26).

Deve ficar claro que além do método simplex, existem vários outros métodos

que possibilitam a resolução de problemas de programação linear.

2.2.1 Itens da Programação Linear

Os itens basicamente são variáveis de decisão, que são as incógnitas do

modelo, na figura 1 elas são representadas pelas variáveis que começam em x0 e

vão até x8. Elas podem ser definidas como quantificadores e também podem ou não

ter relações com outras variáveis.

Portanto, se houver n decisões quantificáveis relacionadas a serem feitas, elas serão representadas na forma de variáveis de decisão (digamos x1. x2, ..., xn) cujos valores respectivos devem ser determinados. (HILLIER , 2006, p12)

Uma função objetivo é composta por medidas de desempenho, um conjunto

de variáveis de decisão, onde as variáveis são os valores a serem encontrados, que

nada mais são do que as representações matemáticas dos objetos abstraídos. Vale

ressaltar que quando agrupadas são definidas como uma função linear.

A função objetivo por sua vez são medidas de desempenho agrupadas, onde

cada medida de desempenho deve atender um objetivo, cada medida de

desempenho nasce de uma abstração, seja ela a representação de um lucro, como

também a representação de um estado.

Em Barbosa (2005) é afirmado que uma função objetivo é composta por uma

função linear, onde a mesma é composta por variáveis de decisão. No item 1 da

figura 1 se observa um exemplo de função objetivo.

Restrições do modelo são funções lineares que obrigam o modelo a interagir

em um determinado universo, essas restrições visam fazer com que o resultado

respeite as regras determinadas, essas funções são compostas pode equações ou

inequações lineares. Uma restrição é composta por operações matemáticas entre as

Page 20: Marcio Bastos BSI TCC

12

variáveis, no entanto essas operações devem respeitar o resultado máximo ou

mínimo que se obtém ao aplicar essas operações, exemplo: x+y<=9, nesse caso a

soma de x e y deve resultar em um valor igual ou menor que 9.

Quaisquer restrições nos valores que podem ser atribuídos a essas variáveis de decisão também são expressas como uma função matemática tipicamente por meio de desigualdades ou equações. (como, P =3x1+2x2 <=10). Essas expressões matemáticas para limitações são normalmente denominadas restrições. (HILLIER , 2006, p12)

Pode-se dizer que a restrição do modelo é formada por variáveis de decisão,

respeitando o modelo matemático e organizadas no formato de equações ou

inequações lineares que juntas limitam o funcionamento do modelo a trabalhar

respeitando o que se propõe “Relações de interdependência entre as variáveis de

decisão que se expressam por um conjunto de equações ou inequações lineares,

chamadas de restrições do modelo” (BARBOZA, 2005, p.10)

Hillier (2006) afirma que quaisquer restrições imposta ao modelo também é

representado de forma matemática onde são feitas normalmente por desigualdades

ou equações lineares.

No item 2 e 3 da figura 1 é mostrado o setor do modelo matemático composto

por restrições, estas restrições por sua vez, neste modelo em específico, forçam as

equações a ter como resultado máximo somente o número um, porém também,

essas restrições vão poder ter um valor mínimo de zero, devido as variáveis de

decisão estarem obrigando o resultado ser maior ou igual a zero, então o sistema

inteiro deve trabalhar a fim de gerar resultados contendo apenas zero ou um.

2.2.2 Algumas Aplicações da Programação Linear

A programação linear pode ser usada para resolver inúmeros problemas tais

como: elaboração de rotas, alocação de recursos, alocação de pessoas, otimizar o

uso de uma área, seja uma plantação ou uma construção, otimizar lucros

minimizando despesas, entre muitos outros, em Hillier (2006) é descrita estas e

outras muitas utilidades para a programação linear.

Em Nogami (2004) é citado um exemplo de uma empresa que tem por

objetivo maximizar seus lucros, porém devesse obedecer às restrições do meio de

produção, essa empresa por sua vez, fabrica dois produtos, onde cada um desses

Page 21: Marcio Bastos BSI TCC

13

produtos necessita de mão de obra e utilização de equipamento com valores

distintos, e também o lucro referente a cada produto é diferente.

Visando valores ótimos na utilização de recursos Munhoz (2001) diz que a

programação linear pode ser utilizada como um dos recursos necessários para

resolver problemas relacionados à produção de derivados da laranja, entre eles

sucos concentrados congelados levando em consideração a variedade da laranja

assim como sua distribuição, pois o problema tem em sua essência, uma grande

quantidade de variáveis originaria de análises de grandes quantidades de

informações. Existem também dois problemas interessantes que podem ser

resolvidos com o auxílio da programação linear, sendo eles: o problema de

trasporte, que visa otimizar a trajetória de transporte de mercadorias e o problema

da designação que objetiva alocar pessoas para realizar determinadas tarefas. Estes

dois problemas, o problema de transporte e de designação, por mais que tenham

nomes diferentes, eles têm muito em comum no que diz respeito à modelagem. “O

problema da designação pode ser visto como um tipo especial de problema de

transporte” (HILLIER, 2006, p.308).

Uma observação interessante sobre o problema de designação é que ele se

torna uma alternativa interessante para elaborar a alocação de professores, ou seja,

criação de grades horarias para instituições de ensino, pois existem um número

finito de professores, matérias, horários, turmas, turnos, dias e também se tem

restrições de turnos, pois cada professor pode estar em vários turnos ou nenhum

turno, existe também as restrições de horários, pois cada professor pode ter uma

variedade de horários únicos em comparação com outros professores, há também

restrições lógicas onde um professor não pode estar em várias turmas no mesmo

horário, e também pode ser defino o número máximo de horas de matéria semanal

por turma, assim como a não variação de professores que lecionam a mesma

matéria em uma mesma turma, entre outros, abstraindo matematicamente o

problema temos variáveis de decisão que podem representar um evento, este

evento é a aula, o momento em que todos os itens do problema tem ligação, esse

momento pode assumir um valor, este valor por sua vez pode afirmar a existência ou

não dá aula, a figura 1 tem a estética de uma modelagem de um contexto como

este, enfim, por existir esses itens sendo os mesmos contidos na programação

linear, se torna possível utilizar a programação linear para resolver este problema.

3 FERRAMENTAS E TECNOLOGIAS

Page 22: Marcio Bastos BSI TCC

14

Para construção do editor será utilizada a linguagem de programação JAVA, o

editor eclipse, a metodologia orientada a objetos, o SCPSolver como interface para

acessar a biblioteca GLPK que permite resolução de problemas de programação

linear.

3.1 JAVA

Em meados de 1990 a Sun Mycrosystems realizou o financiamento de uma

pesquisa interna com o codinome Green, onde a principal tarefa era estudar a

criação de um dispositivo eletrônico inteligente destinado ao consumidor final. Esse

projeto obteve um resultado que foi uma linguagem de programação similar o C.

Tempos depois seu nome foi modificado para Oak, e logo após certo tempo foi que

recebeu nome Java o qual foi inspirado no nome de uma ilha que tem esse nome.

Segundo JORGE (2004),

Há certa curiosidade por trás deste nome. Java é o nome de uma ilha do Pacifico, onde se produz um tipo especial de café. A inspiração do nome se deu quando a equipe de desenvolvimento provou esse café. Os integrantes (viciados na bebida) deram-se conta de como era apreciada por profissionais da área de desenvolvimento, de modo que não foi difícil prestar uma homenagem ao batizar a nova linguagem de programação com o nome Java. (JORGE, 2004, p.2).

O nome mudou de Oak para Java devido a problemas de registro, problemas

relacionados a direitos autorais do nome. “Devido a problemas de copyright, o Oak

recebe o novo nome Java” (JUNIOR, 2007, p.21).

A linguagem Java pode ser considerada similar a C/C++ e C#, devido ambas

estar voltadas para orientação de objetos e possuem um alto grau de semelhança.

A programação orientada a objetos (POO) é universalmente adotada como o

padrão de mercado para o desenvolvimento de aplicações para todos os modelos de

softwares.

O JAVA foi apresentado ao mercado em 1995 pela Sun Microsystems, porém

anteriormente, em 1991 um grupo de projeto da Sun definiu a importância da criação

de uma nova plataforma de desenvolvimento a fim de portar o software criado nesta

plataforma a diferentes equipamentos, pois já se tinha conhecimento de uma

proposta que visava criar uma classe de computadores capazes de se comunicar de

Page 23: Marcio Bastos BSI TCC

15

inúmeras formas, assim a equipe idealizava mais, ela queria ampliar essa qualidade

destes computadores com a utilização do JAVA.

Tudo começou em 1991 em um pequeno grupo de projeto da Sun Microsystems denominado Green que pretendia criar uma nova geração de computadores portáteis inteligentes, capazes de se comunicar de muitas formas, ampliando suas potencialidades de uso. Para tanto decidiu-se criar também uma nova plataforma para o desenvolvimento destes equipamentos de modo que seu software pudesse ser portado para os mais diferentes tipos de equipamentos. (JUNIOR, 2007, p.20)

Em 1996 a Sun fornece gratuito ao público um conjunto de ferramentas com a

denominação de JDK 1.02, sendo estas ferramentas, disponibilizadas a desenvolver

em Java nas plataformas Solaris e Windows 95/NT.

3.1.1 Características da Linguagem Java

A linguagem de computadores Java tem como características: Alto

desempenho, portabilidade, segurança, simplicidade, multithreaded e é orientada a

objetos. “Essa linguagem de programação possui como principais características:

simplicidade, orientação a objetos, portabilidade e alta performance e segurança.”

(JUNIOR, 2007, p.10).

Java é uma linguagem de programação que além de tipada, portável é

definida como uma linguagem orientada a objeto pois atende os requisitos de uma

linguagem OO que podem ser compreendidas como abstração, encapsulamento e

hereditariedade. “Java atende a todos os requisitos necessários para que uma

linguagem seja considerada orientada a objetos (que resumidamente são: oferecer

mecanismos de abstração, encapsulamento e hereditariedade)” (JUNIOR, 2007,

p23).

A linguagem de programação java é independente de plataforma pois o Java

não é compilado para o hardware, mas sim compilado para a JVM com o javac,

quando compilado o arquivo recebe o nome de Bytecode, que ao serem executados

são interpretados pela JVM.

Nessa linguagem, os programas são escritos em arquivos-texto com a extensão .java. Ao serem compilados com o compilador javac, são gerados os arquivos .class. Um arquivo .class é constituídos de bytecodes, código interpretado pela Máquina Virtual Java(Java Virtual Machine). (ASCENCIO e VENERUCHI, 2007, p.10)

Page 24: Marcio Bastos BSI TCC

16

Ascencio (2007) é dito que o código java, escrito em arquivos com a extensão

.java é compilado pelo compilador Javac, onde são gerados arquivos (.class) que

podem ser interpretados pela JVM.

3.2 PROGRAMAÇÃO ORIENTADA A OBJETOS

A POO Consiste em uma técnica onde se agrupam operações e dados

específicos, onde formam um grupo de funcionalidades, onde podem ser descritos

como métodos e atributos.

A Orientação a Objetos (OO) é uma técnica de programação que se baseia na construção e utilização de objetos. Um objeto ao combinar dados e operações específicas delimita um conjunto particular de funcionalidades ou responsabilidades (JUNIOR, 2007, p.76)

Resumindo Jones (2001), observasse uma afirmação onde se diz que para

ser orientado a objetos é fundamental respeitar alguns conceitos, tais como:

encapsulamento, ocultação de informação e implementação, retenção de estado,

identidade de objeto, mensagens, classes, herança, polimorfismo e generalização.

Características da programação orientada a objetos:

Encapsulamento na orientação a objetos é um conjunto de atributos e

métodos aonde representa um estado em um objeto, estes atributos têm

níveis de visibilidade dentro da aplicação, onde somente as operações do

objeto têm permissão para acessar o atributo.

Ocultação de informação e implementação é controle da visibilidade dos

dados ou implementação do que se deseja encapsular.

Retenção de estado é a capacidade de um objeto guardar uma informação

e possa futuramente repassá-la caso seja necessário.

Identidade de objeto é a capacidade de o objeto ser identificado como uma

entidade única dentro do sistema

Mensagem é a capacidade de comunicação entre os objetos a fim de fazer

um pedido para que um ouro objeto aplique um de seus métodos

Classes são mecanismos que definem comportamento e estrutura de

objetos, pode-se afirmar que um objeto é a instancia de uma classe.

Herança é a habilidade de herdar atributos e métodos de outra classe.

Page 25: Marcio Bastos BSI TCC

17

Polimorfismo é a capacidade de uma operação se comportar de maneira

diferente para classes diferentes

Generalização é a relação de uma classe com outras mais específicas

3.3 BIBLIOTECAS DE PROGRAMAÇÃO LINEAR

3.3.1 Gnu Linear Programming Kit (GLPK)

O GLPK é uma biblioteca que possui componentes matemáticos que

possibilitam a resolução de problemas de programação linear, um dos componentes

oferecido por ele é o simplex dual e primal.

Ele é disponibilizado para todas as pessoas que tenham interesse de utilizá-

lo, da mesma maneira ele esta disponível também para a comunidade de

desenvolvedores, o GLPK é protegido utilizando-se dos termos da licença GNU,

sendo assim, ele é denominado como um software livre, ou seja, um projeto de

código fonte aberto, código livre, ele foi escrito na linguagem de programação C e

além de fornecer solução à programação linear também oferece soluções no

contexto de programação inteira mista, além de varias outras técnicas da pesquisa

operacional.

O GNU Linear Programming (GLPK) é um pacote de software destinado a resolver problemas em larga escala de programação linear (LP), de programação inteira mista (MIP), e outros problemas relacionados (MENDONÇA SANTOS, 2011, p.03)

Bressan (2004) também afirma que o GLPK é um software livre “O software

GLPK — Gnu Linear Programming Kit, por exemplo, consiste em uma biblioteca de

programação linear com código fonte aberto” (BRESSAN e LEITE DE OLIVEIRA,

2004,p.336).

Devido as suas características, o GLPK é uma alternativa interessante para

ser utilizado em aplicativos que visam resolver problemas de programação linear,

pois ele oferece tudo que é necessário para resolução de tal problema, além é claro

de ser um ótimo software.

Page 26: Marcio Bastos BSI TCC

18

3.3.2 SCPSolver

O SCPSolver é uma solução interessante para desenvolvedores JAVA que

desejam ter acesso à biblioteca GLPK que é escrita em C, o SCPSolver possibilita a

utilização de três bibliotecas que são utilizadas para resolver problemas de PL.

Em Planatscher (2013) pode-se observar que o SCPSolver é uma biblioteca

escrita em JAVA, e para o seu desenvolvimento foi utilizado o Eclipse e o otimizador

JProfiler, o SCPSolver foi desenvolvido para possibilitar acesso rápido e

descomplicado as bibliotecas de programação linear por parte dos programadores

JAVA, sendo que essas bibliotecas são escritas em sua grande maioria em C/C++,

desta forma o SCPSolver esta possibilitando a portabilidade de desenvolvimento e

uso para desenvolvedores e usuário que fazem uso das plataformas Windows, Linux

e Mac Os x.

SCPSolver atualmente é funcional com a JVM de 32 bits e com a versão do

JAVA 1.5 ou maior, oferece acesso as bibliotecas GLPK, LPsolver, e CPLEX da IBM

conforme é mostrado na figura 2.

FIGURA 2 – SUPORTE DO SCPSOLVER

FONTE: (PLANATSCHER E SCHOBER, 2013)

SCPSolver disponibiliza ao desenvolvedor JAVA duas alternativas de

implementação sendo uma de alto nível e uma de baixo nível.

Page 27: Marcio Bastos BSI TCC

19

3.4 ECLIPSE

Para programar em JAVA pode ser utilizado um ambiente de desenvolvimento

integrado (IDE), que disponibilizam utilidades que visam facilitar o trabalho dos

desenvolvedores, o Eclipse é um IDE que foi desenvolvido com investimento forte da

IBM, nos dias atuais do desenvolvimento deste trabalho o Eclipse está sendo

disponibilizado gratuitamente para download.

Em Gonçalves (2006) é afirmado que o IDE teve um investimento por parte da

IBM de mais de quarenta milhões de dólares no seu desenvolvimento, tempos

depois transforma o IDE em um projeto de código livre chamado de Eclipse.org, que

inicialmente começou com as empresas Borland, IBM, Merant, QNX Software

Systems, Rational Software, Red Hat, SUSE, TogetherSoft e Webgain.

Eclipse é um ambiente integrado de desenvolvimento, é software de código

aberto, por sua vez ele é livre. "O eclipse em si fornece apenas o ambiente integrado

para execução dos plug-ins e uns poucos plug-ins básicos, como editor de textos

ASCII, sistema de ajuda e integração aos CVS"(GONÇALVES, 2006, p22). Na figura

3 é mostrada a estrutura básica do Eclipse.

FIGURA 3 – ESTRUTURA BÁSICA DO ECLIPSE

FONTE: (GONÇALVES, 2006, P24).

Page 28: Marcio Bastos BSI TCC

20

Entre outros o Eclipse é multiplataforma, assim como tem suporte a vários

idiomas, assim como várias linguagens de programação. “Você pode programar em

outras linguagens como C/C++, Cobol e até mesmo C#.” (Gonçalves, 2006, p26).

3.5 ASTAH

O Astah é um aplicativo que permite modelagem visual de diagramas, tais

como diagramas de sequência, diagrama de caso de uso, diagramas de classes,

entre outros, ele é voltado para desenvolvedores que utilizam a metodologia

orientada a objetos, nos dias atuais existem versões não gratuitas e uma versão

gratuita.

O aplicativo Astah Community pode ser observado na figura 4.

FIGURA 4 – ASTAH COMMUNITY.

FONTE: (O AUTOR).

Segundo Yoshidome (2012) Astah é um software voltado a auxilinar na

criação de diagramas UML, tem uma versão para uso livre porém não é de codigo

Page 29: Marcio Bastos BSI TCC

21

aberto, e outras versões mais completas são vendidas. Sendo as versões: Astah

Community, Astah UML, Astah Professional e Astah Share.

Page 30: Marcio Bastos BSI TCC

22

4 SISTEMA PROPOSTO

Visando integração com SCPSolver que faz uso da biblioteca GLPK, será

criando um aplicativo que possibilite ao usuário a inserção de um modelo

matemático de programação linear, ficando a cargo do aplicativo transformar o

modelo inserido pelo usuário em um modelo legível ao SCPSolver, que por sua vez

utilizada o GLPK para fazer os devidos cálculos, ficando também a cargo do

aplicativo proposto interpretar os dados retornado pelo SCPSolver e disponibilizar os

resultados ao usuário utilizador. O aplicativo recebeu o nome de OptLiAna.

4.1 OBJETIVO GERAL DO SISTEMA

Desenvolver um aplicativo para resolução de problemas de programação linear,

especificamente na forma de um editor, possibilitando que o usuário de forma simples

possa obter resultado para problemas de programação linear.

4.2 REQUISITOS FUNCIONAIS DO SISTEMA

O aplicativo deve conter uma área de texto para que o usuário possa colocar sua

modelagem matemática de programação linear.

Deve executar problemas de programação linear.

Deve existir um botão para executar a modelagem

Deve possibilitar ao usuário manipular o arquivo, ou seja, salvar, abrir e criar novo,

assim como, opção para fechar o aplicativo.

O aplicativo deve conter opção de edição de arquivo, tais como: colar, copiar,

selecionar tudo, fazer, refazer, deletar.

Deve existir um menu com opção de ajuda, onde mostre exemplos de formatos

suportados.

Deve existir uma tela de resultado, onde seja imprimido o resultado, caso o

problema seja impossível de se resolver, uma tela é mostrada com a mensagem

“Não foi encontrada solução”.

Deve existir um menu de ajuda mostrando exemplos de modelos suportados.

O aplicativo deve possibilitar ao usuário acesso aos menus de forma que o usuário

possa usar o mouse, assim como apenas o teclado.

Page 31: Marcio Bastos BSI TCC

23

Quando o usuário selecionar criar um arquivo, o aplicativo deve verificar se

existe um arquivo editado na área de texto, caso exista, o sistema deve emitir

um alerta, perguntando se o usuário deseja salvar o atual arquivo, assim

como a opção de cancelar a operação para retornar ao editor.

Ao selecionar a opção salvar, o aplicativo deve verificar se o arquivo a ser

salvo existe no disco, caso exista o asterisco no conto superior esquerdo

deve sumir e o arquivo salvo em disco, caso não exista arquivo em disco, o

sistema deve abrir a tela de diálogo com a opção para salvar o arquivo, assim

como selecionar a pasta de destino.

Do mesmo modo quando for selecionado a opção para sair do aplicativo, o

aplicativo deve verificar se existe arquivo em edição na área de texto, caso

exista, o sistema deve emitir um alerta, perguntando se o usuário deseja

salvar o atual arquivo, assim como a opção de cancelar a operação para

retornar ao editor.

Ao executar um arquivo o sistema deve verificar se está selecionado a opção

maximizar ou minimizar, caso não esteja, deve-se emitir um alerta ao usuário

sobre tal condição.

As mensagens de erro devem aparecer em um campo de texto inferior.

Deve existir atalhos de teclado para as funções do aplicativo, exceto para o item de

menu denominado sobre.

4.3 REQUISITOS NÃO FUNCIONAIS DO SISTEMA

Deve-se restringir a entrada de modelagem que não tenham seus elementos

baseados nos seguintes formatos, descrito na tabela 01 e tabela 02.

A função objetivo, restrições do modelo e variáveis de decisão devem seguir

as seguintes regras descritas na tabela 03 exemplificada na tabela 04.

O aplicativo ira ser executado apenas em Java x86, ou seja, Java 32 bits.

O aplicativo deve ser executado em Sistema operacional Windows Seven

x64, ou seja, Windows Seven 64 bits.

TABELA 1 – NÚMEROS E INCÓGNITAS

Formato dos Formato Formato da Descrição:

Page 32: Marcio Bastos BSI TCC

24

elementos: do

número:

incógnita:

-1.2x1 -1.2 X1 Números

negativos.

1.2x1 1.2 x1 Número irracional

representado com

ponto.

2x1 2 x1 Número inteiro

-2umaincognitagrande -2 umaincognitagrande Números

negativos.

1.2umaincognitagrande 1.2 umaincognitagrande Exemplo de

incógnita grande

2umaincognitagrande 2 umaincognitagrande Outro exemplo com

um número inteiro.

1.208275340848026x1 1.2082753

40848026

x1 Exemplo de um

número irracional.

FONTE: (O AUTOR).

TABELA 2 – SINAIS DE RESTRIÇÃO

Sinais de restrição: Descrição:

<= Menor ou igual.

>= Maior ou igual.

= Igual.

FONTE: (O AUTOR).

TABELA 3 – REGRAS

Elementos da modelagem Descrição

Page 33: Marcio Bastos BSI TCC

25

Função objetivo Deve estar na primeira linha em referência aos

outros itens.

Restrições do modelo Cada restrição deve estar em uma única linha.

Variáveis de decisão Deve obedecer a logica da modelagem, ela

deve estar na função objetivo.

FONTE: (O AUTOR).

TABELA 4 – EXEMPLIFICAÇÃO

Modelo. Descrição

1.208275340848026x1+x2

x1<=9.208275340848026

x2<=9

x1>=0

x2>=0

Cada linha deve conter apenas o que se

destina a ela, ou seja, cada equação deve

estar em uma linha.

FONTE: (O AUTOR).

4.4 DIAGRAMA DE CASO DE USO

4.4.1 Diagrama de Caso de uso geral

O caso de uso geral é uma generalização dos casos de uso do aplicativo,

sendo esses casos: manter arquivo; Editar arquivo; Executar arquivo e Acessar

conteúdo de ajuda. Eles estão descritos nas tabelas 5, 6, 7 e 8. A representação

gráfica do caso de uso geral está em evidencia na figura 5.

FIGURA 5 – CASO DE USO GERAL

Page 34: Marcio Bastos BSI TCC

26

FONTE: (O AUTOR).

TABELA 5 – MANTER ARQUIVO

Nome do caso de uso. Manter Arquivo.Caso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para acessar as opções de manter arquivo.

Pré-condiçõesPós-CondiçõesFluxo PrincipalAções do Ator Ações do Sistema1. Selecionar menu Arquivo.

2. Apresentar itens do menu ArquivoRestrições/validações.

FONTE: (O AUTOR).

TABELA 6 – EDITAR ARQUIVO

Page 35: Marcio Bastos BSI TCC

27

Nome do caso de uso. Editar Arquivo.Caso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para acessar as opções de editar o arquivo

Pré-condiçõesPós-CondiçõesFluxo PrincipalAções do Ator Ações do Sistema1. Selecionar menu Editar.

2. Apresentar itens do menu EditarRestrições/validações.

FONTE: (O AUTOR).

TABELA 7 – EXECUTAR O ARQUIVO

Nome do caso de uso. Executar Arquivo.Caso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para acessar as opções para executar o arquivo

Pré-condiçõesPós-CondiçõesFluxo PrincipalAções do Ator Ações do Sistema1. Selecionar menu Execução.

2. Apresentar itens do menu Execução

Restrições/validações.

FONTE: (O AUTOR).

TABELA 8 – ACESSAR CONTEÚDO DE AJUDA

Page 36: Marcio Bastos BSI TCC

28

Nome do caso de uso. Acessar conteúdo de ajuda.Caso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para acessar as opções do menu conteúdo de ajuda.

PrecondiçõesPós-Condições

Fluxo PrincipalAções do Ator Ações do Sistema1. Selecionar menu Ajuda.

2. Apresentar itens do menu Ajuda.Restrições/validações.

FONTE: (O AUTOR).

4.4.2 Caso de Uso Especifico Manter Arquivo

Segue as tabelas 9, 10, 11, 12 e 13 com as descrições específicas dos

respectivos casos de uso: Criar novo arquivo, Abrir arquivo, salvar arquivo, Salvar

arquivo como, selecionar sair, a especificação do caso de uso Manter Arquivo pode

ser observado na figura 6.

FIGURA 6 – MANTER O ARQUIVO

Page 37: Marcio Bastos BSI TCC

29

FONTE: (O AUTOR).

TABELA 9 – CRIAR NOVO ARQUIVO

Nome do caso de uso. Criar novo arquivoCaso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para Criar um novo arquivo.

Pré-Condições.Pós-Condições.Fluxo Principal.Ações do Ator. Ações do Sistema.1. Selecionar o menu de Arquivo.

2. Apresentar os itens do menu de Arquivo.

3. Seleciona o item de menu Executar4. Cria um novo arquivo.

Restrições/validações. Caso exista um arquivo com alteração no campo de edição do editor o sistema de emitir uma

Page 38: Marcio Bastos BSI TCC

30

mensagem ao usuário perguntando se deseja salvar o arquivo.

Fluxo Alternativo – Criar novo arquivoAções do Ator. Ações do Sistema.1. Pressionar as teclas ctrl+n.

3. Cria um novo arquivo.Restrições/validações. Caso exista um arquivo com

alteração no campo de edição do editor o sistema de emitir uma mensagem ao usuário perguntando se deseja salvar o arquivo.

FONTE: (O AUTOR).

TABELA 10 – ABRIR O ARQUIVO

Nome do caso de uso. Abrir arquivoCaso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para Abrir um arquivo.

Pré-Condições.Pós-Condições.Fluxo Principal.Ações do Ator. Ações do Sistema.1. Selecionar o menu de Arquivo.

2. Apresentar os itens do menu de Arquivo.

3. Seleciona o item de menu Abrir arquivo.

4. Apresenta a janela com as opções de abrir arquivo e cancelar a operação.

5. Seleciona o arquivo e pressiona o botão Abrir.

6. Apresenta o arquivo no campo de edição do editor.

Restrições/validações.Fluxo Alternativo – Criar novo arquivo - CancelarAções do Ator. Ações do Sistema.1. Selecionar o menu de Arquivo.

2. Apresentar os itens do menu de Arquivo.

3. Seleciona o item de menu Abrir

Page 39: Marcio Bastos BSI TCC

31

arquivo.4. Apresenta a janela com as opções de abrir arquivo e cancelar a operação.

5. Pressiona o botão Cancelar.6. Fecha a janela de diálogo.

Fluxo Alternativo 2 – Criar novo arquivoAções do Ator. Ações do Sistema.1. Pressiona as teclas ctrl+n.

4. Apresenta a janela com as opções de abrir arquivo e cancelar a operação.

5. Pressiona o botão Cancelar.6. Fecha a janela de diálogo.

Fluxo Alternativo 3 – Criar novo arquivoAções do Ator. Ações do Sistema.1. Pressiona as teclas ctrl+n.

2. Apresenta a janela com as opções de abrir arquivo e cancelar a operação.

3. Seleciona o arquivo e pressiona o botão Abrir.

4. Apresenta o arquivo no campo de edição do editor.

FONTE: (O AUTOR).

TABELA 11 – SALVAR O ARQUIVO

Nome do caso de uso. Salvar arquivoCaso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para Salvar um arquivo.

Pré-Condições.Pós-Condições.Fluxo Principal.Ações do Ator. Ações do Sistema.1. Selecionar o menu de Arquivo.

2. Apresentar os itens do menu de Arquivo.

3. Seleciona o item de menu Salvar.4. Apresenta a janela com as opções Para salvar o arquivo e cancelar a operação.

5. Nomeia o arquivo e pressiona o

Page 40: Marcio Bastos BSI TCC

32

botão Salvar.6. Escreve o arquivo em disco.

Restrições/validações. Deve existir conteúdo na área de edição do editor.

Fluxo Alternativo – Salvar ArquivoAções do Ator. Ações do Sistema.1. Selecionar o menu de Arquivo.

2. Apresentar os itens do menu de Arquivo.

3. Seleciona o item de menu Salvar.4. Escreve o arquivo em disco.

Restrições/validações. Arquivo à ser salvo deve existir em disco.

Fluxo Alternativo 2 – Salvar arquivoAções do Ator. Ações do Sistema.1. Pressiona as teclas ctrl+s

2. Apresenta a janela com as opções Para salvar o arquivo e cancelar a operação.

3. Nomeia o arquivo e pressiona o botão Salvar.

4. Escreve o arquivo em disco.Restrições/validações. Deve existir conteúdo na área de

edição do editor.Fluxo Alternativo 3 – Salvar arquivoAções do Ator. Ações do Sistema.1. Pressiona as teclas ctrl+s

4. Escreve o arquivo em disco. Restrições/validações. Arquivo à ser salvo deve existir

em disco.Fluxo Alternativo 4 – Cancelar Salvar arquivoAções do Ator. Ações do Sistema.1. Pressiona as teclas ctrl+s

2. Apresenta a janela com as opções Para salvar o arquivo e cancelar a operação.

3. Pressiona o botão Cancelar.4.Fecha a janela de diálogo e não salva o arquivo.

FONTE: (O AUTOR).

TABELA 12 – SALVAR ARQUIVO COMO

Nome do caso de uso. Salvar arquivo como

Page 41: Marcio Bastos BSI TCC

33

Caso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para Salvar um arquivo como.

Pré-Condições.Pós-Condições.Fluxo Principal.Ações do Ator. Ações do Sistema.1. Selecionar o menu de Arquivo.

2. Apresentar os itens do menu de Arquivo.

3. Seleciona o item de menu Salvar como.

4. Apresenta a janela com as opções Para salvar o arquivo e cancelar a operação.

5. Nomeia o arquivo e pressiona o botão Salvar.

6. Escreve o arquivo em disco.Restrições/validações.Fluxo Alternativo – Cancelar Salvar arquivo comoAções do Ator. Ações do Sistema.1. Selecionar o menu de Arquivo.

2. Apresentar os itens do menu de Arquivo.

3. Seleciona o item de menu Salvar como.

4. Apresenta a janela com as opções Para salvar o arquivo e cancelar a operação.

5. Nomeia o arquivo e pressiona o botão Cancelar.

6.Fecha a janela de diálogo e não salva o arquivo.

FONTE: (O AUTOR).

TABELA 13 – SELECIONAR SAIR

Nome do caso de uso. Selecionar sair

Page 42: Marcio Bastos BSI TCC

34

Caso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para sair do editor.

Pré-Condições.Pós-Condições.Fluxo Principal.Ações do Ator. Ações do Sistema.1. Selecionar o menu de Arquivo.

2. Apresentar os itens do menu de Arquivo.

3. Seleciona o item de menu Sair4. Encerra a execução do aplicativo.

Restrições/validações. Caso exista um arquivo com alteração no campo de edição do editor o sistema de emitir uma mensagem ao usuário perguntando se deseja salvar o arquivo.

Fluxo Alternativo – Selecionar sairAções do Ator. Ações do Sistema.1. Pressionar o botão X.

3. Cria um novo arquivo.4. Encerra a execução do aplicativo.

Restrições/validações. Caso exista um arquivo com alteração no campo de edição do editor o sistema de emitir uma mensagem ao usuário perguntando se deseja salvar o arquivo.

Restrições/validações. Caso exista um arquivo com alteração no campo de edição do editor o sistema de emitir uma mensagem ao usuário perguntando se deseja salvar o arquivo.

4.4.3 Caso de uso Executar arquivo

Page 43: Marcio Bastos BSI TCC

35

Esta descrição de caso de uso é referente à ação que usuário exerce sobre o

aplicativo no que diz respeito a execução do arquivo evidenciado na tabela 14 e na

figura 7.

FIGURA 7 – EXECUTAR ARQUIVO

FONTE: (O AUTOR).

TABELA 14 – EXECUTAR ARQUIVO

Nome do caso de uso. Executar arquivoCaso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para Executar o arquivo em edição.

Pré-Condições. Inserção de conteúdo na área de texto do editor.

Pós-Condições.Fluxo Principal.Ações do Ator. Ações do Sistema.1. Selecionar na barra de ferramentas o radiobutton para minimizar ou maximizar.

Page 44: Marcio Bastos BSI TCC

36

2. Selecionar menu Execução. 3. Apresentar o item do menu Execução.

4. Seleciona o item de menu Executar5. Mostra a tela de resultado contendo a solução.

Restrições/validações. Caso exista não conformidade na edição do arquivo, o sistema deve retornar uma mensagem de erro.

Fluxo Alternativo – Executar arquivoAções do Ator. Ações do Sistema.1. Selecionar na barra de ferramentas o radiobutton para minimizar ou maximizar.2. Pressionar a tecla F5

3. . Mostra a tela de resultado contendo a solução.

Restrições/validações. Caso exista não conformidade na edição do arquivo, o sistema deve retornar uma mensagem de erro.

FONTE: (O AUTOR).

4.4.4 Caso de Uso Editar Arquivo

Esta descrição de caso de uso é referente às ações que usuário exerce sobre

o aplicativo no que diz respeito à edição do arquivo, ficando evidente nas tabelas 15

até a tabela 21 e na figura 8.

FIGURA 8 – EDITAR O ARQUIVO

Page 45: Marcio Bastos BSI TCC

37

FONTE: (O AUTOR).

TABELA 15 – DESFAZER ALTERAÇÕES NO ARQUIVO

Nome do caso de uso. Desfazer alterações no arquivoCaso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para desfazer alterações no arquivo em edição.

Pré-Condições.Pós-Condições.Fluxo Principal.Ações do Ator. Ações do Sistema.1. Selecionar menu Editar.

2. Apresentar itens do menu Editar.3. Seleciona o item de menu Desfazer Adição.

4. Desfaz a última alteração feita no arquivo em edição

Restrições/validações.Fluxo Alternativo – Desfazer alterações no arquivo

Page 46: Marcio Bastos BSI TCC

38

Ações do Ator. Ações do Sistema.1. Pressionar as teclas ctrl+z.

2. Desfaz a última alteração feita no arquivo em edição.

FONTE: (O AUTOR).

TABELA 16 – REFAZER ALTERAÇÕES NO ARQUIVO

Nome do caso de uso. Refazer alterações no arquivoCaso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para refazer alterações no arquivo em edição.

Pré-Condições.Pós-Condições.Fluxo Principal.Ações do Ator. Ações do Sistema.1. Selecionar menu Editar.

2. Apresentar itens do menu Editar.3. Seleciona o item de menu Refazer Adição.

4. Refaz a última alteração feita no arquivo em edição

Restrições/validações.Fluxo Alternativo – Desfazer alterações no arquivo Ações do Ator. Ações do Sistema.1. Pressionar as teclas ctrl+y

2. Refaz a última alteração feita no arquivo em edição.

FONTE: (O AUTOR).

TABELA 17 – RECORTAR CONTEÚDO DO ARQUIVO

Nome do caso de uso. Recortar conteúdo do arquivoCaso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para utilizar a opção de recorte.

Pré-Condições.

Page 47: Marcio Bastos BSI TCC

39

Pós-Condições.Fluxo Principal.Ações do Ator. Ações do Sistema.1. Seleciona o conteúdo que deseja recortar no editor2. Selecionar menu Editar.

3. Apresentar itens do menu Editar.4. Seleciona o item de menu Recortar.

5. Recortar o conteúdo selecionado.Restrições/validações.Fluxo Alternativo – Recortar conteúdo do Arquivo.Ações do Ator. Ações do Sistema.1. Seleciona o conteúdo que deseja recortar no editor2. Pressionar as teclas ctrl+x

3. Desfaz a última alteração feita .

FONTE: (O AUTOR).

TABELA 18 – COPIAR CONTEÚDO DO ARQUIVO

Nome do caso de uso. Copiar conteúdo do arquivoCaso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas para copiar o conteúdo.Pré-Condições.Pós-Condições.Fluxo Principal.Ações do Ator. Ações do Sistema.1. Seleciona o conteúdo que deseja copiar.2. Selecionar menu Editar.

3. Apresentar itens de o menu Editar.4. Seleciona o item de menu Copiar.

5. Copiar o conteúdo selecionado.Restrições/validações.Fluxo Alternativo – Copiar conteúdo do Arquivo.Ações do Ator. Ações do Sistema.1. Seleciona o conteúdo.2. Pressionar as teclas ctrl+c

3. Copiar o conteúdo selecionado.

FONTE: (O AUTOR).TABELA 19 – COLAR CONTEÚDO NO ARQUIVO

Page 48: Marcio Bastos BSI TCC

40

Nome do caso de uso. Colar conteúdo no arquivoCaso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para colar o conteúdo no campo de texto do editor.

Pré-Condições.Pós-Condições.Fluxo Principal.Ações do Ator. Ações do Sistema.1. Selecionar menu Editar.

2. Apresentar itens do menu Editar.3. Seleciona o item de menu Colar.

4. Cola o conteúdo previamente copiado no campo de edição do editor.

Restrições/validações.Fluxo Alternativo – Copiar conteúdo do Arquivo.Ações do Ator. Ações do Sistema.1. Pressionar as teclas ctrl+v.

2. Cola o conteúdo previamente copiado no campo de edição do editor.

FONTE: (O AUTOR).

TABELA 20 – SELECIONAR TODO O CONTEÚDO DO ARQUIVO

Nome do caso de uso. Selecionar todo o conteúdo do arquivo

Caso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para selecionar todo o conteúdo do arquivo em edição.

Pré-Condições.Pós-Condições.Fluxo Principal.Ações do Ator. Ações do Sistema.1. Selecionar menu Editar.

2. Apresentar itens do menu Editar.3. Seleciona o item de menu Selecionar Tudo.

4. Seleciona todo o conteúdo do

Page 49: Marcio Bastos BSI TCC

41

arquivo em edição.Restrições/validações.Fluxo Alternativo – Selecionar todo o conteúdo do Arquivo.Ações do Ator. Ações do Sistema.1. Pressionar as teclas ctrl+a.

2. Seleciona todo o conteúdo do arquivo em edição

FONTE: (O AUTOR).

TABELA 21 – DELETAR O CONTEÚDO DO ARQUIVO

Nome do caso de uso. Deletar o conteúdo do arquivoCaso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para Deletar o conteúdo do arquivo.

Pré-Condições.Pós-Condições.Fluxo Principal.Ações do Ator. Ações do Sistema.1. Seleciona o conteúdo do arquivo em edição.2. Selecionar menu Editar.

3. Apresentar itens do menu Editar.4. Seleciona o item de menu Deletar.

4. Deleta o conteúdo selecionado.Restrições/validações.Fluxo Alternativo – Deletar o conteúdo do arquivo.Ações do Ator. Ações do Sistema.1. Pressiona as tecla Delete

2. Deleta o conteúdo selecionadoFluxo Alternativo 2 – Deletar o conteúdo do arquivo.1. Posiciona o cursor à esquerda do conteúdo e pressiona Delete.

2. Deleta caracteres a direita.

FONTE: (O AUTOR).

4.4.5 Acessar conteúdo de ajuda

Page 50: Marcio Bastos BSI TCC

42

O caso de uso Acessar conteúdo de ajuda é descrito nas tabelas 22 e 23 e

tem sua representação gráfica na figura 9.

FIGURA 9 – OBTER AJUDA

FONTE: (O AUTOR).

TABELA 22 – OBTER AJUDA

Nome do caso de uso. Obter ajuda.Caso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para acessar o conteúdo de ajuda do sistema.

Pré-CondiçõesPós-Condições

Page 51: Marcio Bastos BSI TCC

43

Fluxo PrincipalAções do Ator Ações do Sistema1. Selecionar menu de Ajuda.

2. Apresentar itens do menu Ajuda.

3. Seleciona o item de menu Conteúdo de Ajuda.

4. Apresentar tela com conteúdo de ajuda.

Restrições/validações.Fluxo Alternativo – Obter AjudaAções do Ator Ações do Sistema1. Pressionar a tecla F1.

2. Apresentar tela com conteúdo de ajuda.

FONTE: (O AUTOR).

TABELA 23 – OBTER INFORMAÇÕES SOBRE O APLICATIVO

Nome do caso de uso. Obter informações sobre o aplicativo.

Caso de Uso Geral.Ator Principal. Usuário. Atores Secundários.Resumo. Este caso descreve as etapas

percorridas por um usuário para acessar o conteúdo com informações sobre o aplicativo.

Pré-CondiçõesPós-CondiçõesFluxo PrincipalAções do Ator Ações do Sistema1. Selecionar menu de Ajuda.

2. Apresentar itens do menu Ajuda.

3. Seleciona o item de menu Sobre o Optiliana.

4. Apresentar tela com conteúdo de Descrição do Optliana.

Restrições/validações

FONTE: (O AUTOR).

4.5 DIAGRAMAS DE SEQUENCIA

Page 52: Marcio Bastos BSI TCC

44

As figuras 10, 11, 12 e 13 mostram o fluxo dos objetos para cumprir os

objetivos descritos nos casos de uso, sendo eles: Editar arquivo, Manter arquivo,

Executar arquivo e Selecionar ajuda.

FIGURA 10 – EDITAR O ARQUIVO

FONTE: (O AUTOR).

FIGURA 11 – MANTER O ARQUIVO

Page 53: Marcio Bastos BSI TCC

45

FONTE: (O AUTOR).

FIGURA 12 – EXECUTAR O ARQUIVO

Page 54: Marcio Bastos BSI TCC

46

FONTE: (O AUTOR).

FIGURA 13 – SELECIONAR AJUDA

Page 55: Marcio Bastos BSI TCC

47

FONTE: (O AUTOR).

4.6 DIAGRAMAS DE CLASSE

Neste capítulo são apresentados os diagramas de classes da aplicação,

representados nas figuras 14, 15, 16, 17, 18 e 19, em todas as imagens se tem as

classes e seus pacotes, cada Imagem representa um pacote e suas respectivas

classes, Cada imagem é nomeada com o mesmo nome do pacote que ela

representa.

FIGURA 14 – INÍCIO

Page 56: Marcio Bastos BSI TCC

48

FONTE: (O AUTOR).

FIGURA 15 – MENSAGEM

FONTE: (O AUTOR).

Page 57: Marcio Bastos BSI TCC

49

FIGURA 16 – IO

FONTE: (O AUTOR).

Page 58: Marcio Bastos BSI TCC

50

FIGURA 17 – CÓDIGO

FONTE: (O AUTOR).

Page 59: Marcio Bastos BSI TCC

51

FIGURA 18 – EQUAÇÃO

FONTE: (O AUTOR).

FIGURA 19 – TELAS

Page 60: Marcio Bastos BSI TCC

52

FONTE: (O AUTOR).

5 CRONOGRAMA

Page 61: Marcio Bastos BSI TCC

53

TABELA 24 – ÍNDICE DE ATIVIDADES PARAO CRONOGRAMA

Siglas Descrição

E1 Escolha do tema e orientador, proposta do projeto.

E2 Apoio do orientador na execução do projeto.

E3 Pesquisa bibliográfica

E4 Fundamentação teórica

E5 Desenvolvimento do projeto lógico

E6 Desenvolvimento do sistema

E7 Testes

E8 Revisão dos testes

E9 Entrega do sistema e apresentação final.

FONTE: (O AUTOR).

TABELA 25 – CRONOGRAMA

Mês Jul2013

Ago2013

Set2013

Out2013

Nov2013

Feb2014

Mar2014

Abr2014

Mai2014

Jun2014

Atividades E1 E1

E2 E2 E2 E2 E2 E2 E2 E2 E2

E3 E3 E3 E3 E3 E3

E4 E4 E4 E4

E5 E5 E5

E6 E6 E6 E6

E7 E7 E7

E8 E8

E9

FONTE: (O AUTOR).

6 RESULTADOS OBTIDOS

Page 62: Marcio Bastos BSI TCC

54

O aplicativo para resolução de problemas de programação linear foi nomeado de

OptiLiAna e é composto pelas seguintes características:

A tela principal descrita na figura 20.

Na figura 21 é representado o menu de arquivo que é também mostrado no

diagrama de caso de uso Manter arquivo.

O caso de uso editar arquivo deu origem ao menu editar que pode ser visto

na figura 22.

O caso de uso executar arquivo deu origem ao menu executar, assim como a

barra de tarefa do editor, a barra de tarefa pode ser vista claramente na figura

20 composta por três itens, um botão executar e dois botões de seleção rádio,

no entanto o menu executar pode ser visto na figura 23.

O caso de uso selecionar ajuda, deu origem ao menu ajuda, representado na

figura 24.

A tela abrir arquivo é representado na figura 25.

É mostrada a tela de salvar arquivo na figura 26.

Na figura 27 é a tela com resultado de um modelo com solução e a figura 28 é

mostrada a tela do modelo sem solução.

A tela de ajuda do aplicativo pode ser vista na figura 29.

As telas com os alertas para salvar e para reescrever arquivo estão

representadas na figura 30 e 31.

Na figura 32 está a tela sobre o OptiLiAna, ou seja, sobre o aplicativo.

Pode ser vista na figura 33 uma tela erro causada por existir um elemento que

não faz parte do modelo.

Ao escrever no editor os elementos de diferente a especificada uma

mensagem de erro é emitida e pode ser vista na figura 34.

Na figura 35 é mostrada uma mensagem de erro ocasionada por um

caractere inválido.

A figura 36 mostra uma mensagem de erro causada por tentar executar um

arquivo que não é um modelo de programação linear.

Ao tentar executar o arquivo sem selecionar maximizar ou minimizar é

mostrado uma mensagem de erro que pode ser vista na figura 37.

6.1 CARACTERISTICAS BASICAS

Page 63: Marcio Bastos BSI TCC

55

Após descompactar e executar o arquivo OptiLiAna.jar, o usuário vai se

deparar com a tela descrita na figura 20, nesta tela o usuário pode editar sua

modelagem matemática que visa ser resolvida com a programação linear, existe um

menu com os itens, arquivo, editar, execução, existe também uma opção de ajuda,

além disso o usuário conta com uma barra onde contem opções para sua

modelagem matemática onde ele pode selecionar maximizar ou minimizar e também

executar o arquivo

No canto superior direito esta localizada as opções do aplicativo, onde é

possível maximizar, minimizar ou fechar o aplicativo, no canto superior esquerdo

encontra-se o nome do aplicativo e o ícone do mesmo, caso o exista edição sem

salvar, um asterisco é mostrado na frente do nome do aplicativo. Na parte inferior se

encontra um campo de texto, onde as mensagens de erros serão exibidas.

FIGURA 20 – TELA INICIAL

FONTE: (O AUTOR).

O menu (Arquivo) expresso na figura 21 é composto por opções que auxiliam

o usuário na edição do arquivo, uma destas opções é o item que tem por nome

Page 64: Marcio Bastos BSI TCC

56

(Novo) ou as teclas de atalho (Ctrl+N) é as opções de como o usuário pode criar um

arquivo, também existe a opção (Abrir) ou as teclas de atalho (Ctrl+O) que possibilita

abrir um arquivo existente, a opção (Salvar) ou as teclas de atalho (Ctrl+S) permite

que o usuário salve o arquivo, a opção (Salvar Como) permite que o usuário salve

um arquivo, a opção (Sair) quando selecionada fecha o aplicativo.

Os ícones do menu são inspirados no padrão do sistema operacional, os

atalhos são inspirados em editores já existentes, como o Eclipse.

FIGURA 21 – MENU ARQUIVO

FONTE: (O AUTOR).

Na figura 22 é representado o menu (Editar) e seus respectivos itens, o

usuário tem como opções, clicar em (Desfazer) ou usar as teclas de atalho (Ctrl+Z)

para desfazer, especificamente essa opção tem como objetivo desfazer a última

ação do usuário no editor de texto, logo no que diz respeito a edição de texto,

também neste contexto de edição de texto existe a opção (Refazer) que se torna

ativa para uso somente se o usuário já desfez alguma ação, sendo assim, ao

Page 65: Marcio Bastos BSI TCC

57

selecionar essa opção ou usar as teclas de atalho (Ctrl+Y) o usuário refaz seu texto

desfeito, ambas as operações de desfazer e refazer desfaz e refaz caractere por

caractere.

O item (Recortar) ou as teclas de atalho (Ctrl+X) possibilita que o usuário

recorte o texto selecionado, o item (Copiar) ou as teclas de atalhos (Ctrl+C) permite

que o usuário copie o texto selecionado, a tecla (Colar) assim como os atalhos

(Ctrl+V) quando ativadas cola o texto previamente copiado no editor do aplicativo, o

item (Selecionar Tudo) ou as teclas (Ctrl+A) seleciona todo o conteúdo contido no

editor.

O item (Deletar) do menu ou a tecla (Delete) ao ativar deleta o conteúdo

selecionado do editor.

FIGURA 22 – MENU EDITAR

FONTE: (O AUTOR).

Page 66: Marcio Bastos BSI TCC

58

Na figura 23 é mostrado o menu (Execução) e seu único item (Executar), essa

é uma opção que o usuário pode utilizar para executar o arquivo, o usuário pode

também utilizar a tecla (F5).

FIGURA 23 – MENU EXECUTAR ARQUIVO

FONTE: (O AUTOR).

O menu (Ajuda) visto na figura 24 disponibiliza ao usuário duas opções,

sendo a opção (Conteúdo de Ajuda) ou a tecla de Atalho (F1) que traz ao usuário

dicas de uso do aplicativo, essas dicas são uteis ao usuário, pois fara com que ele

insira de maneira correta os dados no editor do aplicativo, se o usuário teve pouco

contado com programação linear o conteúdo de ajuda do aplicativo pode ser uma

forma de o usuário ter uma noção ou esclarecimento sobre os itens da modelagem

de programação linear, também é possível acessar o item (Sobre o OptiLiAna) onde

fornece ao usuário utilizador informações sobre o autor do aplicativo.

Page 67: Marcio Bastos BSI TCC

59

FIGURA 24 – MENU DE AJUDA

FONTE: (O AUTOR).

6.2 CARACTERISTICAS DE ENTRADA E SAIDA

Na figura 25 esta representada a tela que se apresenta ao usuário após o

mesmo selecionar (Abrir) ou fazer uso das teclas de atalho (Ctrl+O), nesta tela o

usuário poderá navegar no sistema de arquivo de seu sistema operacional,

selecionar o arquivo que deseja editar e finalmente clicar no botão (abrir), feito isto o

conteúdo do arquivo estará no editor de texto do aplicativo, existe também o botão

(Cancelar) que possibilita ao usuário cancelar a operação, se clicar este botão, a

janela de dialogo fechara e o usuário voltara para a tela inicial do aplicativo.

Page 68: Marcio Bastos BSI TCC

60

FIGURA 25 – ABRIR ARQUIVO

FONTE: (O AUTOR).

Se o usuário fizer uso da opção (Salvar Como) do menu (Arquivo) vai se

deparar com a tela representada na figura 26, essa tela permite que o usuário

navegue no sistema de arquivo de seu sistema operacional e escolha um local que

achar apropriado para salvar seu arquivo previamente editado, para salvar o arquivo

o usuário deve clicar no botão (salvar) nomear o arquivo e adicionar ou não uma

extensão ao arquivo feito isto a tela de dialogo fechara e o usuário retornara a tela

inicial do aplicativo, porem o conteúdo salvo continuara no editor do aplicativo, o

usuário também conta com a opção de cancelar a operação se for clicado o botão

(Cancelar) da janela de dialogo, a janela será fechada e o usuário retornara a tela

inicial do aplicativo, o conteúdo continuara na área de edição do aplicativo, porem

não estará salvo.

Page 69: Marcio Bastos BSI TCC

61

FIGURA 26 – SALVAR ARQUIVO

FONTE: (O AUTOR).

6.3 CARACTERISTICAS DOS RESULTADOS

O usuário tem a sua disposição duas opções de telas para os resultados,

sendo elas ativadas automaticamente, variando entre uma e outra conforme o

resultado, na figura 27 é representado uma tela de resultado de modelo com

solução, a tela é composta por itens, sendo a mensagem de solução ótima

encontrada, onde afirma que uma solução foi encontrada, em outra linha se encontra

o valor objetivo que se refere ao valor da função objetivo, nas linhas a seguir abaixo

da frase (VALORES DAS VARIAVEIS) é evidenciado em cada linha uma variável de

decisão e seu respectivo valor resultante do calculo pelo GLPK, na linha em que se

encontra a palavra (MAXIMIZAR) é representada a função objetiva inserida pelo

usuário e nas linhas abaixo o restante da modelagem inserida pelo usuário, essa

descrição da modelagem é útil, pois se o usuário não fechar ou fechar a janela, ele

pode escrever um novo modelo matemático e executar, caso ele não tenha fechado

Page 70: Marcio Bastos BSI TCC

62

a janela uma nova janela de resultado será exibida, sendo assim mais tarde ele

pode navegar entre as janelas de resultado e a existência da modelagem por ele

feita estar contida na janela de resultados, ele saberá a qual modelagem tal

resultado se refere. No canto superior direito o usuário encontra as opções de

fechar, maximizar ou minimizar a janela de resultados, no canto superior esquerdo

se encontra o nome do aplicativo o nome da tela.

FIGURA 27 – TELA DE RESULTADO DE MODELO COM SOLUÇÃO

FONTE: (O AUTOR).

Outra tela de resultado é mostrada na figura 28, esta tela além das opções de

maximizar, minimizar e fechar e a identificação da tela e do aplicativo são uma

Page 71: Marcio Bastos BSI TCC

63

mensagem de (Não foi encontrada solução) neste caso, significar que o modelo

executado não tem solução.

FIGURA 28 – TELA DE RESULTADO DE MODELO SEM SOLUÇÃO

FONTE: (O AUTOR).

Page 72: Marcio Bastos BSI TCC

64

6.4 CARACTERISTICAS INFORMATIVAS

Ao selecionado o menu (Ajuda) e em seguida acionado o item de menu

(Conteúdo de Ajuda) ou pressionar a tecla de atalho (F1) o usuário tem a sua

disposição uma tela com algumas informações sobre o aplicativo, dentre estas

informações se encontra a descrição do ambiente ao qual o aplicativo foi testado,

assim como instruções de uso, esclarecendo ao usuário o formato numérico a ser

utilizado, os tipos de sinais suportados, exemplos de modelagem, ordem dos

elementos do modelo matemático. A figura 29 se refere a tela descrita.

FIGURA 29 – TELA DE AJUDA

FONTE: (O AUTOR).

Page 73: Marcio Bastos BSI TCC

65

Quando o usuário está tentando salvar um arquivo com o mesmo nome em

um mesmo diretório, é acionada uma janela de dialogo descrita na figura 30, onde é

perguntando ao usuário se o mesmo deseja sobrescrever o arquivo já existente,

caso o usuário selecione (Sim), o arquivo existente será sobrescrito, caso ele

selecione (Não) a janela de dialogo é fechada e o foco é direcionado ao editor, neste

caso o conteúdo do editor não estará salvo.

FIGURA 30 – TELA DE ALERTA PARA SOBRESCREVER ARQUIVO

FONTE: (O AUTOR).

A figura 31 representa uma janela de dialogo que o usuário se depara quando

existe um conteúdo ainda não salvo no editor e o usuário tenta criar um arquivo ou

fechar o aplicativo utilizando qualquer recurso disponível para este fim, neste caso o

usuário conta com duas opções, ele pode acionar os botões (Sim) ou (Não), sendo

obrigatório, escolher uma das opções.

Se o usuário decidir cancelar a operação, a janela de dialogo fechara

retornando o foco para o aplicativo, sem ter feito qualquer modificação no conteúdo

do editor, no entanto o arquivo continua sem ser salvo.

Porem se o usuário decidir optar por escolher em não salvar o arquivo, um

novo arquivo é criado, e neste caso o conteúdo existente no editor é descartando.

Mas se o usuário decidir por salvar o arquivo outra janela de dialogo para

salvar o arquivo, janela a qual esta representada na figura 26 será aberta e o usuário

devera fazer todo o procedimento descrito para salvar o arquivo, feito isso, ou seja,

ao final do procedimento, o aplicativo salva o arquivo que estava no editor e fornece

ao usuário um editor vazio.

Page 74: Marcio Bastos BSI TCC

66

FIGURA 31 – TELA DE ALETAR PARA SALVAR

FONTE: (O AUTOR).

Na figura 32 esta representada a tela que se apresenta ao usuário após ele

ter navegado no menu (Ajuda) e ter selecionado a opção de item de menu (Sobre o

OptiLiAna), essa tela tem como objetivo fornecer uma informação básico sobre a

autoria do aplicativo, essa tela é composta pelo nome do aplicativo, endereço

eletrônico do desenvolvedor, o nome do desenvolvedor, o ano que o aplicativo foi

desenvolvido e o ícone do aplicativo, assim como as opções de minimizar a janela

ou fechar localizadas no canto superior direito, ainda na parte superior porem na

parte esquerda esta localizado o nome do aplicativo e seu ícone.

FIGURA 32 – TELA SOBRE O OPTILIANA

FONTE: (O AUTOR).

Page 75: Marcio Bastos BSI TCC

67

6.5 CARACTERISTICAS DE ALERTA

Na figura 33 é representada uma tela com um exemplo de erro de modelagem

no que se refere à quantidade de variáveis de decisão, neste caso existe as

variáveis x1 e x2 na função objetivo, no entanto se tenta colocar uma variável x3

como uma restrição, mas como a variável x3 não existe na função objetivo o

aplicativo deve rejeitar a modelagem quando a opção executar for acionada de

qualquer maneira possível, sendo pelo menu (Execução) ou pela opção da barra, ou

até mesmo pela tecla de atalho (F5), neste caso será emitido uma mensagem de

erro ao usuário que estra visível na área de texto inferior do aplicativo.

FIGURA 33 – TELA DE ERRO CAUSADA POR UM ELEMENTO QUE NÃO FAZ

PARTE DO MODELO

FONTE: (O AUTOR).

Page 76: Marcio Bastos BSI TCC

68

Sabendo que o conteúdo de ajuda informa ao usuário a forma com que o

modelo matemático deve ser escrito no editor do aplicativo, também deve ser levado

em consideração que o usuário pode se enganar e digitar seu modelo de forma não

conforme como descrito a ser seguido.

Neste caso se o usuário cometer um engano e colocar a função objetivo na

posição inferior referente a quaisquer elementos da modelagem matemática o

aplicativo vai emitir uma mensagem de erro representada na figura 34 avisando ao

usuário que existe um erro na função objetivo.

FIGURA 34 - ORDEM ERRADA DOS ELEMENTOS DO MODELO

FONTE: (O AUTOR).

Page 77: Marcio Bastos BSI TCC

69

Se no momento da execução do modelo matemático escrito no editor de texto

do aplicativo o modelo matemático apresentar algum caractere não conforme como

definido no conteúdo de ajuda do aplicativo, o aplicativo emitira uma mensagem de

erro, fornecendo a informação ao usuário sobre um erro de caractere, na figura 35

pode ser observada uma modelagem não conforme, pois existe um elemento que

não tem sentido com as conformidades do aplicativo que é a ultima linha digitada

onde se tem x2.=7, os sinais suportados pelo editor são menor ou igual, igual e

maior ou igual (<=, = e >=).

FIGURA 35 – TELA DE ERRO OCASIONADA POR CARACTERE INVÁLIDO

FONTE: (O AUTOR).

Page 78: Marcio Bastos BSI TCC

70

Observasse na figura 36 uma mensagem de erro acionada ao executar o

arquivo do editor que não é uma PL, na figura 36 o usuário tenta executar um

arquivo contendo apenas os caracteres (adf) como esses caracteres não formam

uma modelagem matemática que possibilite a resolução com programação linear

dentro das exigências do aplicativo, tal mensagem é fornecida ao usuário.

FIGURA 36 – TELA DE ERRO CAUSADA POR EXECUTAR UM ARQUIVO QUE

NÃO É CONTÉM UMA PL.

FONTE: (O AUTOR).

No entanto, se usuário tentar executar o arquivo do editor de texto do

aplicativo sem selecionar um dos itens (Maximizar) ou (Minimizar) localizados na

barra do aplicativo será emitido ao usuário uma mensagem de erro exemplificada na

figura 37, informando o mesmo sobre a não seleção de uma das opções.

Page 79: Marcio Bastos BSI TCC

71

FIGURA 37 – TELA DE ERRO AO EXECUTAR SEM SELECIONAR MAXIMIZAR

OU MINIMIZAR

FONTE: (O AUTOR).

Page 80: Marcio Bastos BSI TCC

72

7 CONSIDERAÇÕES FINAIS

Neste trabalho, o acadêmico em questão abordou como tema principal a

Pesquisa Operacional, especificamente a Programação Linear, e durante a pesquisa

foi notado que algumas tecnologias poderiam ser utilizadas para o desenvolvimento

do sistema proposto e também foi percebido que seria possível demonstrar com

clareza a importância deste aplicativo e da programação linear para auxiliar na

resolução de problemas de pesquisa operacional.

A pesquisa feita ao decorrer deste trabalho foi de grande importância para

adquirir os conhecimentos necessários que tornariam possível o desenvolvimento do

aplicativo que foi proposto para este trabalho.

Como objetivos futuros pode se destacar a expansão do aplicativo para

suportar programação inteira e programação binaria entre outros, fornecendo ao

usuário um menu com opções para que o mesmo possa escolher o método que

deseja aplicar ao modelo.

Page 81: Marcio Bastos BSI TCC

73

REFERÊNCIAS

ASCENCIO, Ana F. G.; CAMPOS, Edilene A. V. Fundamentos da Programação de Computadores. 2ª. ed. São paulo: Pearson, 2007.

BARBOSA, Marcos A.; ZANARDI, Ricardo A. D. Iniciação à Pesquisa Operacional no Ambiente de Gestão. 1ª. ed. Curitiba: Ibprex, 2010.

BARBOZA, Angela O. Simulação e Técnicas da Computação Evolucionária Aplicadas a Problemas de Programação Linear Inteira Mista. Curitiba: Repositório Institucional da Universidade Tecnológica Federal do Paraná (RIUT), 2005.

BRESSAN, Glaucia M.; OLIVEIRA, Aurelio R. L. Reordenamento eficiente das colunas básicas na programação de lotes e cortes. Pesquisa Operacional, Rio de Janeiro, v. XXIV, n. 2, Maio 2004. ISSN 0101-7438.

GONÇALVES, Edson. Dominando o Eclipse. São Paulo: Ciência Moderna 2006.

HILLIER, Frederick S.; LIEBERMAN, Geradl J. Introdução à Pesquisa Operacional. 8ª. ed. São Paulo: McGraw-Hill, 2006.

JONES, Meiler P. Fundamentos do Desenho Orientado a Objeto com UML. Tradução: PASCHOA, Celso R. São Paulo: Makron Books, 2001.

JUNIOR, Peter J. Java Guia do Programador. São Paulo: Novatec, 2007.

SANTOS, Luiz C. D. M. M. A Importância dos Software Livres na Engenharia de Produção. Anais do Congresso Nacional Universidade, EAD e Software Livre, II, n. 2, 2011.

MUNHOZ, José R.; MORABITO, Reinaldo. Um modelo baseado em programação linear e programação de metas para análise de um sistema de produção e distribuição de suco concentrado congelado de laranja. Gestão & Produção, São Carlos, v. VIII, n. 2, Agosto 2001. ISSN 0104-530X.

NETO, Luiz L. S. Pesquisa Operacional no Ensino Médio. Synergismus scyentifica UTFPR, p. 42, 2009.

NOGAMI, Otto. O Uso Da Programação Linear Na Otimização Da Produção: Um Aplicativo Para A Microeconomia. Pensamento & Realidade, São Paulo, v. 15, 2004. ISSN 2237-4418.

PLANATSCHER , Hannes; SCHOBER, Michael. Scpsolver - An Easy To Use Java Linear Programming Interface. scpsolver, 2013. DisponÍvel em: <http://scpsolver.org/>. Acesso em: 26 de abril de 2014.

TAHA, Hamdy A. Pesquisa Operacional: uma visão geral. 8. ed. São Paulo: Pearson, 2008.

Page 82: Marcio Bastos BSI TCC

74

YOSHIDOME, Ewelton Y. C. et al. Uma Apoio Sistematizado à Implementação do Processo de Desenvolvimento de Requisitos do MPS.BR e CMMI a partir do Uso de Ferramentas de Software Livre. Workshop em Engenharia de Requisitos , n. 15, 2012.

JORGE, Marcos. Java Passo a Passo Lite. São Paulo: Pearson 2004.