Você está na página 1de 82

FACULDADE DAS INDSTRIAS FAMEC

MRCIO BASTOS

APLICATIVO PARA RESOLUO DE PROBLEMAS DE PROGRAMAO LINEAR

SO JOS DOS PINHAIS


JUNHO / 2014

MRCIO BASTOS

APLICATIVO PARA RESOLUO DE PROBLEMAS DE PROGRAMAO LINEAR


Trabalho apresentado disciplina de
Trabalho de Concluso de Curso, sob
solicitao da professora Cassiana
Fagundes da Silva para obteno de nota
no oitavo perodo do curso de
Bacharelado em Sistemas de Informao.

SO JOS DOS PINHAIS


JUNHO / 2014

ii

RESUMO
O trabalho apresentar como foco principal o desenvolvimento de um
aplicativo voltado a Pesquisa Operacional, especificamente para Programao
Linear e a importncia da utilizao de um aplicativo que auxilie durante a execuo
dos problemas que envolvem a programao linear.
Com a Programao Linear, pode se resolver inmeros problemas que
envolvem alocao de recursos, rotas, pessoas ente outros, dependendo do ramo
que for utilizado, com isso percebe se que a importncia da Pesquisa Operacional
que vai alm de apenas resolver problemas matemticos, mais tambm pode
solucionar problemas do nosso cotidiano.
Com este trabalho, o leitor compreender os conceitos relacionais a Pesquisa
Operacional, Programao Linear e demais subitens, e compreender a importncia
da utilizao do aplicativo em questo para solucionar os problemas envolvendo
Programao Linear.
Palavras Chaves: Pesquisa Operacional, Programao Linear, Aplicativo.

iii

LISTA DE TABELAS
TABELA 1 NMEROS E INCGNITAS...................................................................24
TABELA 2 SINAIS DE RESTRIO........................................................................24
TABELA 3 REGRAS.................................................................................................25
TABELA 4 EXEMPLIFICAO................................................................................25
TABELA 5 MANTER ARQUIVO...............................................................................26
TABELA 6 EDITAR ARQUIVO..................................................................................27
TABELA 7 EXECUTAR O ARQUIVO.......................................................................27
TABELA 8 ACESSAR CONTEDO DE AJUDA.......................................................28
TABELA 9 CRIAR NOVO ARQUIVO........................................................................29
TABELA 10 ABRIR O ARQUIVO..............................................................................30
TABELA 11 SALVAR O ARQUIVO...........................................................................31
TABELA 12 SALVAR ARQUIVO COMO...................................................................33
TABELA 13 SELECIONAR SAIR.............................................................................34
TABELA 14 EXECUTAR ARQUIVO.........................................................................35
TABELA 15 DESFAZER ALTERAES NO ARQUIVO..........................................37
TABELA 16 REFAZER ALTERAES NO ARQUIVO.............................................38
TABELA 17 RECORTAR CONTEDO DO ARQUIVO............................................38
TABELA 18 COPIAR CONTEDO DO ARQUIVO...................................................39
TABELA 19 COLAR CONTEDO NO ARQUIVO....................................................40
TABELA 20 SELECIONAR TODO O CONTEDO DO ARQUIVO..........................40
TABELA 21 DELETAR O CONTEDO DO ARQUIVO............................................41
TABELA 22 OBTER AJUDA.....................................................................................42
TABELA 23 OBTER INFORMAES SOBRE O APLICATIVO..............................43
TABELA 24 NDICE DE ATIVIDADES PARAO CRONOGRAMA............................53
TABELA 25 CRONOGRAMA...................................................................................53

iv

LISTA DE ILUSTRAES
FIGURA 1 MODELO MATEMTICO........................................................................10
FIGURA 2 SUPORTE DO SCPSOLVER.................................................................18
FIGURA 3 ESTRUTURA BSICA DO ECLIPSE.....................................................19
FIGURA 4 ASTAH COMMUNITY.............................................................................20
FIGURA 5 CASO DE USO GERAL..........................................................................26
FIGURA 6 MANTER O ARQUIVO............................................................................29
FIGURA 7 EXECUTAR ARQUIVO...........................................................................35
FIGURA 8 EDITAR O ARQUIVO..............................................................................37
FIGURA 9 OBTER AJUDA.......................................................................................42
FIGURA 10 EDITAR O ARQUIVO............................................................................44
FIGURA 11 MANTER O ARQUIVO..........................................................................45
FIGURA 12 EXECUTAR O ARQUIVO.....................................................................46
FIGURA 13 SELECIONAR AJUDA..........................................................................47
FIGURA 14 INCIO...................................................................................................48
FIGURA 15 MENSAGEM.........................................................................................48
FIGURA 16 IO..........................................................................................................49
FIGURA 17 CDIGO................................................................................................50
FIGURA 18 EQUAO............................................................................................51
FIGURA 19 TELAS...................................................................................................52
FIGURA 20 TELA INICIAL........................................................................................55
FIGURA 21 MENU ARQUIVO..................................................................................56
FIGURA 22 MENU EDITAR......................................................................................57
FIGURA 23 MENU EXECUTAR ARQUIVO.............................................................58
FIGURA 24 MENU DE AJUDA.................................................................................59
FIGURA 25 ABRIR ARQUIVO..................................................................................60
FIGURA 26 SALVAR ARQUIVO...............................................................................61
FIGURA 27 TELA DE RESULTADO DE MODELO COM SOLUO......................62
FIGURA 28 TELA DE RESULTADO DE MODELO SEM SOLUO......................63
FIGURA 29 TELA DE AJUDA...................................................................................64
FIGURA 30 TELA DE ALERTA PARA SOBRESCREVER ARQUIVO......................65
FIGURA 31 TELA DE ALETAR PARA SALVAR.......................................................66
FIGURA 32 TELA SOBRE O OPTILIANA................................................................66
FIGURA 33 TELA DE ERRO CAUSADA POR UM ELEMENTO QUE NO FAZ
PARTE DO MODELO..................................................................................................67
FIGURA 34 - ORDEM ERRADA DOS ELEMENTOS DO MODELO..........................68
FIGURA 35 TELA DE ERRO OCASIONADA POR CARACTERE INVLIDO.........69
FIGURA 36 TELA DE ERRO CAUSADA POR EXECUTAR UM ARQUIVO QUE
NO CONTM UMA PL..........................................................................................70
FIGURA 37 TELA DE ERRO AO EXECUTAR SEM SELECIONAR MAXIMIZAR OU
MINIMIZAR..................................................................................................................71

LISTA DE SIGLAS E ABREVIATURAS


ASCII

American Standard Code for Information Interchange

Linguagem de Programao

C++

Linguagem de Programao

CPLEX

Biblioteca de Programao Linear da IBM

CVS

Concurrent Version System

GNU

General Public License

GLPK

GNU Linear Programming Kit

GUI

Graphical User Interface

Hardware

Parte Fsica de um computador

IBM

International Business Machines

IDE

Ambiente de Desenvolvimento Integrado

IO

Input/Output

JAVA

Linguagem de Programao

JDK

Java Development Kit

JRE

Java Runtime Envioronment

JVM

Java Virtual Machine

LINUX

Sistema Operacional

LPSOLVER Biblioteca de Programao Linear Open Source


MAC OS

Sistema Operacional

MYSQL

Banco de Dados

OAK

Linguagem de Programao

OO

Orientado a Objeto

PL

Programao Linear

PO

Pesquisa Operacional

POJO

Plain Old Java Objects

POO

Programao Orientada a Objetos

UML

Unified Modeling Language

WINDOWS Sistema Operacional

vi

SUMRIO
1 INTRODUO...........................................................................................................1
2 PESQUISA OPERACIONAL.....................................................................................3
2.1 MODELAGEM MATEMTICA.................................................................................5
2.1.1 Definio do Problema e Coleta de Dados..........................................................6
2.1.2 Formulao e Construo do Modelo..................................................................6
2.1.3 Soluo do Modelo...............................................................................................7
2.1.4 Validao do Modelo............................................................................................7
2.1.5 Aplicao do Modelo............................................................................................8
2.2 PROGRAMAO LINEAR .....................................................................................9
2.2.1 Itens da Programao Linear.............................................................................11
2.2.2 Algumas Aplicaes Da Programao Linear....................................................12
3 FERRAMENTAS E TECNOLOGIAS.......................................................................14
3.1 JAVA......................................................................................................................14
3.1.1 Caractersticas da Linguagem Java...................................................................15
3.2 PROGRAMAO ORIENTADA A OBJETOS.......................................................16
3.3 BIBLIOTECAS DE PROGRAMAO LINEAR.....................................................17
3.3.1 Gnu Linear Programming Kit (Glpk)...................................................................17
3.3.2 SCPSolver..........................................................................................................18
3.4 ECLIPSE...............................................................................................................19
3.5 ASTAH...................................................................................................................20
4 SISTEMA PROPOSTO............................................................................................22
4.1 OBJETIVO GERAL DO SISTEMA........................................................................22
4.2 REQUISITOS FUNCIONAIS DO SISTEMA..........................................................22
4.3 REQUISITOS NO FUNCIONAIS DO SISTEMA.................................................23
4.4 DIAGRAMA DE CASO DE USO...........................................................................25
4.4.1 Diagrama de Caso de uso geral........................................................................25
4.4.2 Caso de Uso Especifico Manter Arquivo............................................................28
4.4.3 Caso de uso Executar arquivo...........................................................................35
4.4.4 Caso de Uso Editar Arquivo...............................................................................36
4.4.5 Acessar contedo de ajuda................................................................................42
4.5 DIAGRAMAS DE SEQUENCIA.............................................................................44
4.6 DIAGRAMAS DE CLASSE....................................................................................47
5 CRONOGRAMA.......................................................................................................53
6 RESULTADOS OBTIDOS........................................................................................54
6.1 CARACTERISTICAS BASICAS............................................................................55
6.2 CARACTERISTICAS DE ENTRADA E SAIDA.....................................................59
6.3 CARACTERISTICAS DOS RESULTADOS...........................................................61
6.4 CARACTERISTICAS INFORMATIVAS.................................................................64
6.5 CARACTERISTICAS DE ALERTA........................................................................67
7 CONSIDERAES FINAIS.....................................................................................72
REFERNCIAS...........................................................................................................73

vii

1 INTRODUO
A pesquisa operacional tem contribudo muito para o desenvolvimento
econmico de muitos pases, sendo uma dessas contribuies o aumento da
produtividade em diversas reas, uma das reas dentro da pesquisa operacional a
programao linear que desde 1950 tem sido de grande importncia para as mais
diversas organizaes ao redor do mundo, poupando milhares de dlares, por esse
motivo hoje a maior parte da computao cientifica dedica programao linear,
essa tcnica por sua vez utiliza de modelos matemticos com funes 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 resoluo de problemas de programao linear, especificamente um
editor.
Objetivando

especificamente

pesquisas

bibliogrficas

sobre

pesquisa

operacional, modelagem matemtica, programao linear, ferramentas e tecnologias


a ser utilizada assim como o desenvolvimento do sistema proposto.
E tambm ser apresentado neste trabalho tecnologias como a linguagem de
programao Java, programao orientada a objetos, Editor eclipse, biblioteca de
programao Linear GLPK, SCPSolver entre outros, afim de auxiliar no
desenvolvimento do sistema.
Ao trmino desta pesquisa espera-se que o pesquisador tenha uma viso
clara do caminho para desenvolvimento de sistemas que tenham como requisito a
resoluo de problemas de programao linear.
A estrutura deste trabalho ser organizada conforme segue:
O capitulo 1 apresenta uma breve introduo sobre o que ser descrito no
decorrer do trabalho.
No capitulo 2 realizado a fundamentao terica sobre a Pesquisa
Operacional,

modelagem

matemtica,

juntamente

com

explicao

de

Programao Linear e seus subitens.


O capitulo 3 descrito as ferramentas e tecnologias usadas para a execuo
do sistema proposto.
O capitulo 4 aborda o projeto de desenvolvimento do aplicativo, contendo o
projeto lgico.

No captulo 5 descrito o cronograma do trabalho.


No captulo 6 so apresentados os resultados obtidos.
No captulo 7 se encontra as consideraes finais sobre os conhecimentos
adquiridos durante a pesquisa.

2 PESQUISA OPERACIONAL
Desde a revoluo industrial at os dias atuais, algumas empresas cresceram
e se tornaram complexas, ou seja, as oficinas de artesos evoluram para grandes
corporaes, e gerando grande diviso de trabalho e a segmentao das
responsabilidades gerenciais que se tornariam os propulsores que contriburam para
o aumento dessas instituies.
Desde o advento da revoluo industrial, o mundo presencia um
crescimento extraordinrio no tamanho e complexidade das
organizaes. As pequenas oficinas de artesos de outrora evoluram
para as corporaes bilionrias de hoje. Um fator crucial dessa
mudana revolucionaria foi o extraordinrio aumento na diviso do
trabalho e a segmentao das responsabilidades gerenciais nessas
organizaes. (HILLIER; LIEBERMAN, 2006, p. 01).

O aumento do tamanho das organizaes pode resultar em complexidade e


alta especializao das operaes, assim ento, gerar conflitos de atividades
exercidas pelas organizaes, surgindo tambm, dificuldades para alocar recursos.
Sendo assim, essas dificuldades contriburam para o surgimento da pesquisa
operacional, pois a mesma tende a ser uma ferramenta de grande importncia para
alocar recursos, pessoas, elaborao de rotas, entre outros. Ao inserir esta
metodologia nas empresas gerado um ganho considervel para a instituio, 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 perodo em que ocorria a
segunda guerra mundial que a pesquisa operacional teve seu primeiro uso formal,
onde cientistas optaram por tomar decises baseadas na cincia, assim otimizando
os processos das foras armadas dos pases aliados, ao fim da guerra, as tcnicas
viriam a ser adaptadas ao uso civil.
Ento pode se dizer que a atividade denominada de PO foi atribuda na
segunda guerra mundial, com a necessidade de alocar recursos de forma eficiente
nas operaes militares, assim como, nas atividades exercidas nessas operaes.
No decorrer da guerra, os comandos militares convocaram cientistas para resolver
de modo cientfico os problemas de tticas e estratgia. Quando a guerra acabou, o
sucesso do empreendimento blico despertou interesse na sua aplicao fora do
ambiente militar (HILLIER , 2006, p. 02).

Pode-se dizer que as origens da pesquisa operacional, as suas razes esto


firmadas em um passado distante, ou seja, muitos cientistas j vm ao decorrer da
histria da cincia elaborando tcnicas a fim de se obter o timo de cada operao,
tentando resolver problemas da melhor forma possvel com o mnimo possvel de
recursos, distncias e esforo.
Podemos dizer que a busca pelo timo encontra as suas razes na
antiguidade. Podemos citar Euclides, Newton, Euler, Monge,
Lagrange, Hamilton, Leontief, Von Neumann... Gaspard monge, por
exemplo, publicou em 1781, num trabalho intitulado Mmoire sur la
thorie des dblas 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 especfico a indstria, pode usufruir de um


ganho considervel no campo da pesquisa operacional, pois os cientistas envolvidos
na aplicao da PO durante a guerra, assim como outros cientistas que viriam a se
interessar pela rea desenvolveram pesquisas que resultaram em grande melhoria
dos mtodos utilizados. Em contrapartida, nesse momento da histria da
humanidade estava surgindo uma nova ferramenta, o computador, onde tal
fenmeno

descrito

por

Hillier

(2006)

como

avalanche

da

revoluo

computacional, a informtica por sua vez, viria ser uma ferramenta de extrema
utilidade para resolver problemas modelados com as tcnicas de pesquisa
operacional.
Aps 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
avanos importantes no estado-da-arte. [...] Um segundo fator que
deu mpeto ao crescimento desse campo foi a avalanche da
revoluo computacional. (HILLIER, 2006, p. 02).

Segundo Hillier (2006) pesquisa operacional a especificao para pesquisa


sobre operaes, essa tcnica aplicada em problemas de conduo, coordenao
de

operao

em

reas

tais

como:

manufaturas,

transportes,

construo,

telecomunicao, financeiro, assistncia medica, militar e servios pblicos. Alm


disso, ainda segundo Hillier (2006) a PO, tem contribudo de forma significativa na
melhoria da economia de pases que faz seu uso.
Segundo Taha (2008) existem vrios mtodos para resolver problemas com
pesquisa operacional.

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


aplicao da tcnica que mais se encaixa no contexto a ser resolvido, dentre as
inmeras reas, ou seja, categorias, as tcnicas dentro da pesquisa operacional,
vale ressaltar que ao decorrer da histria a tcnica mais utilizada vem sendo a
programao linear.
Em PO, no temos uma nica tcnica para resolver todos os modelos
matemticos que podem surgir na prtica. Em vez disso, o tipo e a
complexidade do modelo matemtico que determinam a natureza
do mtodo de soluo. [...] A tcnica mais utiliza em PO a
programao linear. Ela aplicada a modelos cujas funes objetivo
e restrio so lineares. (TAHA, 2008, p.02)

Pode ser visto que ao final da modelagem matemtica que determinado o


mtodo de soluo, pois cada modelo se enquadra melhor em uma determinada
categoria da pesquisa operacional.
2.1 MODELAGEM MATEMTICA
Modelagem matemtica se da atravs de um conjunto de atividades que tem
por objetivo a criao de um modelo matemtico, basicamente a modelagem
matemtica composta por cinco atividades, sendo elas: a experimentao, onde se
obtm os dados; a abstrao, onde so desenvolvidos os modelos matemticos; a
resoluo, onde se resolve o problema com tcnicas; a validao, onde verificado
se o modelo realmente faz o que se prope; a modificao, manuteno do modelo
a fim de se obter a perfeio e adaptao a novos requisitos.
Segundo Bassanezi (2002 apud NETO, 2009), a modelagem matemtica
consiste de cinco atividades, experimentao, abstrao, resoluo, validao e a
modificao.
Para Hillier (2006) a modelagem da PO consiste na definio do problema e
coleta de dados, formulao de um problema matemtico, derivar solues a partir
do modelo, o teste do modelo e aplicao do modelo.
Em Taha (2008) descrito que para desenvolver um modelo de PO,
utilizado um processo que contem cinco etapas, sendo elas: Definio do problema;
construo do modelo; Soluo do modelo; validao do modelo; implementao da
soluo.

2.1.1 Definio 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 descries vagas e imprecisas, e a partir desde
contexto ser necessrio abstrair os elementos da modelagem matemtica, em todo
caso pode se dizer que a definio do problema e coleta de dados a etapa onde o
problema definido, e em seguida criasse um enunciado, ou seja, elaborasse uma
primeira interpretao do problema a ser resolvido. Feito isto, deve-se determinar os
objetivos e as restries sobre o que deve ser feito.
A maioria dos problemas prticos enfrentados pelas equipes de PO
inicialmente descrita a eles de uma forma vaga e imprecisa [...] Isso
abrange determinar coisas como os objetivos apropriados, restries
sobre o que pode ser feito. (HILLIER, 2006, p.08).

Porm em Taha (2008) afirmado que a definio do escopo se d atravs


da investigao, onde so identificados trs elementos essenciais para um modelo
de deciso sendo eles: a descrio das alternativas de deciso, que so as variveis
do modelo; o objetivo de estudo, que o objetivo que se pretende chegar com a
resoluo do problema; as limitaes do modelo, o universo que o modelo
trabalhara, as suas limitaes, as variveis de deciso e as restries.
A meta identificar trs elementos principais de um problema de
deciso: (1) descrio das alternativas de deciso, (2) determinao
do objetivo de estudo e (3) especificaes das limitaes sob as quais
o sistema modelado funciona. (TAHA, 2008, p.04).

Ou seja, descrever as alternativas de deciso, determinar os objetivos a ser


estudado e especificar as limitaes do funcionamento do sistema modelado.
2.1.2 Formulao e Construo do Modelo
A formulao de um problema matemtico e a construo do modelo envolve
em transformar o problema real em uma formulao matemtica, onde se tornara
evidente ou no a utilizao de uma estratgia, seja ela atravs da programao
linear, ou de qualquer outra tcnica. implica uma tentativa de traduzir a definio do
problema em relaes matemticas (TAHA, 2008, p.04).

A definio do modelo e discusso sobre o modelo criado de grande


importncia, pois um modelo mal formulado e confiado como certo vai logicamente
atrapalhar muito em vez de ajudar a instituio em suas operaes ou decises, fica
evidente ento que a modelagem deve ser correta, deve estar correta no que diz
respeito ao negcio.
Para Hillier (2006) a formulao se d atravs da construo de um modelo
matemtico que descreve o problema. Porem, para isso a equipe deve discutir sobre
o modelo criado, assim como a sua abordagem matemtica, Hillier (2006) afirma
tambm que os modelos so representaes de ideias e que tem grande grau de
importncia no mundo dos negcios.
2.1.3 Soluo do Modelo
Ao criar um modelo matemtico para resoluo de um problema e equipe de
pesquisa operacional deve decidir a forma como ser abordado o procedimento a
fim de derivar solues, conforme as dimenses do modelo aumentam se torna
imprescindvel a utilizao do computador para trazer essas solues.
Aps a formulao de um problema matemtico para o problema em
questo, a prxima fase em um estudo de PO desenvolver um
procedimento (normalmente baseado em computador) para derivar
solues para o problema desse modelo. (HILLIER, 2006, p 15)

Taha (2008) afirma que esta etapa a soluo do modelo, por si a mais
simples de todas as outras etapas, afirma tambm que nesta etapa so utilizados
algoritmos de otimizao bem definidos.
Ao derivar solues se cria uma demanda, onde se torna essencial o uso de
computadores para auxiliar no processo de derivao de solues, tambm
afirmado que na maioria dos casos, esta etapa de soluo do modelo no a etapa
principal de estudo.
2.1.4 Validao do Modelo
Validar o modelo uma etapa importante, pois ele ser usado inmeras vezes
ao decorrer do tempo, tornando-se crucial o seu funcionamento, essa validao
feita verificando se os resultados fazem sentido, se os nmeros so familiares

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


aceitveis, outra caracterstica que os modelos criados tende a evoluir ao decorrer
do tempo, assim como um sistema o modelo matemtico tambm requer
manuteno, onde so inseridas restries ou at adaptao a um tipo de ambiente
novo, enfim, ele evolui.
Verifica se o modelo proposto faz ou no 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 no inclua surpresas. Em outras palavras a soluo faz
sentido? (TAHA, 2008, p.04)

Desenvolver

um

modelo

matemtico

extenso

parecido

com

desenvolvimento de um sistema computacional desenvolver um modelo matemtico


de grandes dimenses anlogo, 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 insero de melhoria e adaptao a um novo contexto, de
modo geral isso tambm pode ocorrer em um modelo matemtico.
2.1.5 Aplicao 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
ento, instalar um sistema bem documentado, assim como predito pela gerncia.
Em muitos casos so necessrios vrios meses para desenvolver, testar e instalar
este sistema. Neste contexto em que se refere a modelagem matemtica a palavra
sistema se refere ao modelo em si, ou seja, o modelo matemtico tambm pode ser
descrito como um sistema.
Se o modelo for para ser usado repetidamente, a prxima etapa
instalar um sistema bem-documentado para aplicao do modelo
conforme prescrito pela gerncia. [...] Na maioria dos estudos de PO,
podem ser necessrios vrios 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 instrues claras para as pessoas que administraro o sistema
recomendado.

Deve existir uma documentao visando proporcionar um uso claro do


modelo por parte dos usurios que faro seu uso, de forma geral os resultados
obtidos tambm devem ser documentado, pois o usurio deve ter noo clara do
que significa cada item que faz parte do resultado.
2.2 PROGRAMAO LINEAR
A programao linear est entre os maiores e mais importantes avanos
cientficos do sculo XX, as instituies fazem seu uso, tendo como objetivo obter
solues timas para as mais variadas categorias de problemas. Podemos dizer
que aquela que melhor serve aos objetivos das pessoas e das organizaes.
Nessa situao, podemos citar como exemplo o propsito de encontrar o lucro
mximo com custo mnimo (BARBOSA e ZANARDI, 2010, p13), dessa forma
aprimorando seus processos e obtendo como resultado a minimizao de gastos e
maximizao de lucro, alm disso, outros setores sociais tambm encontraram
utilidade para aplicar a programao linear, e assim, tambm usufruindo da tcnica.
No decorrer do tempo vindo dos anos de 1950, a programao linear tem
ajudado empresas a sobreviverem em um mercado competitivo, pode ser dito que
ao aplicar s tcnicas de programao as empresas tm evitado prejuzo e gastos
em proporo de milhes de dlares, sendo uma ferramenta padronizada dentro de
certas empresas.
O desenvolvimento da programao linear tem sido classificado entre
os mais importantes avanos cientficos dos meados do sculo XX e
temos que concordar com essa afirmao. Seu impacto desde 1950
tem sido extraordinrio. Hoje em dia uma ferramenta-padro que
poupou muitos milhares ou milhes de dlares para muitas empresas
ou at mesmo negcios de tamanho moderado em diversos pases
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 programao linear para auxiliar


na tomada de deciso, aplicando a mesma em uma infinidade de problemas
encontrados em uma grande quantidade de negcios.
Uma pesquisa feita pelo Departamento de Computao do Imperial College
em Londres mostra que 85% das empresas citadas na Fortune 500 utilizam a
programao linear para ajudar as mesmas na tomada de deciso.

10

observado que de certa forma a programao linear ajuda as empresas a


chegarem ao sucesso, pois evidente o grande numero de empresas de sucesso
que fazem o seu uso.
Segundo comentrios de pesquisadores do Departamento de
Computao 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 programao linear
como uma ferramenta para tomada de decises (NOGAMI, 2004)

Segundo Hillier (2006) para resolver problemas de programao linear


usada modelagem matemtica, onde a mesma composta obrigatoriamente por
funes lineares.
Um grupo de funes lineares faz com que o sistema matemtico modelado
obedea a uma regra lgica de um determinado comportamento proposto a ser
seguido, limitando assim ao sistema gerar resultados que obedeam e sigam as
regras impostas, criadas pelas funes lineares, ou seja, restries.
Tambm em Barboza (2005) dito que um problema de programao linear
(PL) composto por trs itens, a funo objetivo, as restries das variveis de
deciso contendo relao e linearidade e por ltimo as variveis de deciso.
FIGURA 1 MODELO MATEMTICO

FONTE: (O AUTOR).
A programao linear uma tcnica dentre outras da pesquisa operacional,
no entanto existem varias categorias de problemas dentro da pesquisa operacional
que podem ser resolvidos atravs da tcnica de programao linear existem tambm

11

mtodos e algoritmos utilizados para resolver problemas de programao linear, um


exemplo de mtodo bastante utilizado o simplex, pois seu uso no se restringe
facilmente ao tamanho do problema a ser resolvido. um procedimento de soluo
extraordinariamente eficiente, chamado mtodo simplex, se encontra disponvel para
solucionar

at

mesmo

problemas

de

programao

linear

de

enormes

dimenses.(HILLIER, 2006, p.26).


Deve ficar claro que alm do mtodo simplex, existem vrios outros mtodos
que possibilitam a resoluo de problemas de programao linear.
2.2.1 Itens da Programao Linear
Os itens basicamente so variveis de deciso, que so as incgnitas do
modelo, na figura 1 elas so representadas pelas variveis que comeam em x0 e
vo at x8. Elas podem ser definidas como quantificadores e tambm podem ou no
ter relaes com outras variveis.
Portanto, se houver n decises quantificveis relacionadas a serem
feitas, elas sero representadas na forma de variveis de deciso
(digamos x1. x2, ..., xn) cujos valores respectivos devem ser
determinados. (HILLIER , 2006, p12)

Uma funo objetivo composta por medidas de desempenho, um conjunto


de variveis de deciso, onde as variveis so os valores a serem encontrados, que
nada mais so do que as representaes matemticas dos objetos abstrados. Vale
ressaltar que quando agrupadas so definidas como uma funo linear.
A funo objetivo por sua vez so medidas de desempenho agrupadas, onde
cada medida de desempenho deve atender um objetivo, cada medida de
desempenho nasce de uma abstrao, seja ela a representao de um lucro, como
tambm a representao de um estado.
Em Barbosa (2005) afirmado que uma funo objetivo composta por uma
funo linear, onde a mesma composta por variveis de deciso. No item 1 da
figura 1 se observa um exemplo de funo objetivo.
Restries do modelo so funes lineares que obrigam o modelo a interagir
em um determinado universo, essas restries visam fazer com que o resultado
respeite as regras determinadas, essas funes so compostas pode equaes ou
inequaes lineares. Uma restrio composta por operaes matemticas entre as

12

variveis, no entanto essas operaes devem respeitar o resultado mximo ou


mnimo que se obtm ao aplicar essas operaes, exemplo: x+y<=9, nesse caso a
soma de x e y deve resultar em um valor igual ou menor que 9.
Quaisquer restries nos valores que podem ser atribudos a essas
variveis de deciso tambm so expressas como uma funo
matemtica tipicamente por meio de desigualdades ou equaes.
(como, P =3x1+2x2 <=10). Essas expresses matemticas para
limitaes so normalmente denominadas restries.
(HILLIER , 2006, p12)

Pode-se dizer que a restrio do modelo formada por variveis de deciso,


respeitando o modelo matemtico e organizadas no formato de equaes ou
inequaes lineares que juntas limitam o funcionamento do modelo a trabalhar
respeitando o que se prope Relaes de interdependncia entre as variveis de
deciso que se expressam por um conjunto de equaes ou inequaes lineares,
chamadas de restries do modelo (BARBOZA, 2005, p.10)
Hillier (2006) afirma que quaisquer restries imposta ao modelo tambm
representado de forma matemtica onde so feitas normalmente por desigualdades
ou equaes lineares.
No item 2 e 3 da figura 1 mostrado o setor do modelo matemtico composto
por restries, estas restries por sua vez, neste modelo em especfico, foram as
equaes a ter como resultado mximo somente o nmero um, porm tambm,
essas restries vo poder ter um valor mnimo de zero, devido as variveis de
deciso estarem obrigando o resultado ser maior ou igual a zero, ento o sistema
inteiro deve trabalhar a fim de gerar resultados contendo apenas zero ou um.
2.2.2 Algumas Aplicaes da Programao Linear
A programao linear pode ser usada para resolver inmeros problemas tais
como: elaborao de rotas, alocao de recursos, alocao de pessoas, otimizar o
uso de uma rea, seja uma plantao ou uma construo, otimizar lucros
minimizando despesas, entre muitos outros, em Hillier (2006) descrita estas e
outras muitas utilidades para a programao linear.
Em Nogami (2004) citado um exemplo de uma empresa que tem por
objetivo maximizar seus lucros, porm devesse obedecer s restries do meio de
produo, essa empresa por sua vez, fabrica dois produtos, onde cada um desses

13

produtos necessita de mo de obra e utilizao de equipamento com valores


distintos, e tambm o lucro referente a cada produto diferente.
Visando valores timos na utilizao de recursos Munhoz (2001) diz que a
programao linear pode ser utilizada como um dos recursos necessrios para
resolver problemas relacionados produo de derivados da laranja, entre eles
sucos concentrados congelados levando em considerao a variedade da laranja
assim como sua distribuio, pois o problema tem em sua essncia, uma grande
quantidade de variveis originaria de anlises de grandes quantidades de
informaes. Existem tambm dois problemas interessantes que podem ser
resolvidos com o auxlio da programao linear, sendo eles: o problema de trasporte,
que visa otimizar a trajetria de transporte de mercadorias e o problema da
designao que objetiva alocar pessoas para realizar determinadas tarefas. Estes
dois problemas, o problema de transporte e de designao, por mais que tenham
nomes diferentes, eles tm muito em comum no que diz respeito modelagem. O
problema da designao pode ser visto como um tipo especial de problema de
transporte (HILLIER, 2006, p.308).
Uma observao interessante sobre o problema de designao que ele se
torna uma alternativa interessante para elaborar a alocao de professores, ou seja,
criao de grades horarias para instituies de ensino, pois existem um nmero
finito de professores, matrias, horrios, turmas, turnos, dias e tambm se tem
restries de turnos, pois cada professor pode estar em vrios turnos ou nenhum
turno, existe tambm as restries de horrios, pois cada professor pode ter uma
variedade de horrios nicos em comparao com outros professores, h tambm
restries lgicas onde um professor no pode estar em vrias turmas no mesmo
horrio, e tambm pode ser defino o nmero mximo de horas de matria semanal
por turma, assim como a no variao de professores que lecionam a mesma
matria em uma mesma turma, entre outros, abstraindo matematicamente o
problema temos variveis de deciso que podem representar um evento, este
evento a aula, o momento em que todos os itens do problema tem ligao, esse
momento pode assumir um valor, este valor por sua vez pode afirmar a existncia ou
no d aula, a figura 1 tem a esttica de uma modelagem de um contexto como
este, enfim, por existir esses itens sendo os mesmos contidos na programao
linear, se torna possvel utilizar a programao linear para resolver este problema.
3 FERRAMENTAS E TECNOLOGIAS

14

Para construo do editor ser utilizada a linguagem de programao JAVA, o


editor eclipse, a metodologia orientada a objetos, o SCPSolver como interface para
acessar a biblioteca GLPK que permite resoluo de problemas de programao
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
criao de um dispositivo eletrnico inteligente destinado ao consumidor final. Esse
projeto obteve um resultado que foi uma linguagem de programao similar o C.
Tempos depois seu nome foi modificado para Oak, e logo aps 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 trs deste nome. Java o nome de uma ilha do
Pacifico, onde se produz um tipo especial de caf. A inspirao 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 no foi difcil prestar
uma homenagem ao batizar a nova linguagem de programao 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 orientao de objetos e possuem um alto grau de semelhana.
A programao orientada a objetos (POO) universalmente adotada como o
padro de mercado para o desenvolvimento de aplicaes para todos os modelos de
softwares.
O JAVA foi apresentado ao mercado em 1995 pela Sun Microsystems, porm
anteriormente, em 1991 um grupo de projeto da Sun definiu a importncia da criao
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

15

inmeras formas, assim a equipe idealizava mais, ela queria ampliar essa qualidade
destes computadores com a utilizao do JAVA.
Tudo comeou em 1991 em um pequeno grupo de projeto da Sun
Microsystems denominado Green que pretendia criar uma nova
gerao de computadores portteis inteligentes, capazes de se
comunicar de muitas formas, ampliando suas potencialidades de uso.
Para tanto decidiu-se criar tambm 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 pblico um conjunto de ferramentas com a


denominao de JDK 1.02, sendo estas ferramentas, disponibilizadas a desenvolver
em Java nas plataformas Solaris e Windows 95/NT.
3.1.1 Caractersticas da Linguagem Java
A linguagem de computadores Java tem como caractersticas: Alto
desempenho, portabilidade, segurana, simplicidade, multithreaded e orientada a
objetos. Essa linguagem de programao possui como principais caractersticas:
simplicidade, orientao a objetos, portabilidade e alta performance e segurana.
(JUNIOR, 2007, p.10).
Java uma linguagem de programao que alm de tipada, portvel
definida como uma linguagem orientada a objeto pois atende os requisitos de uma
linguagem OO que podem ser compreendidas como abstrao, encapsulamento e
hereditariedade. Java atende a todos os requisitos necessrios para que uma
linguagem seja considerada orientada a objetos (que resumidamente so: oferecer
mecanismos de abstrao, encapsulamento e hereditariedade) (JUNIOR, 2007,
p23).
A linguagem de programao java independente de plataforma pois o Java
no 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
so interpretados pela JVM.
Nessa linguagem, os programas so escritos em arquivos-texto com
a extenso .java. Ao serem compilados com o compilador javac, so
gerados os arquivos .class. Um arquivo .class constitudos de
bytecodes, cdigo interpretado pela Mquina Virtual Java(Java Virtual
Machine). (ASCENCIO e VENERUCHI, 2007, p.10)

16

Ascencio (2007) dito que o cdigo java, escrito em arquivos com a extenso
.java compilado pelo compilador Javac, onde so gerados arquivos (.class) que
podem ser interpretados pela JVM.
3.2 PROGRAMAO ORIENTADA A OBJETOS
A POO Consiste em uma tcnica onde se agrupam operaes e dados
especficos, onde formam um grupo de funcionalidades, onde podem ser descritos
como mtodos e atributos.
A Orientao a Objetos (OO) uma tcnica de programao que se
baseia na construo e utilizao de objetos. Um objeto ao combinar
dados e operaes especficas delimita um conjunto particular de
funcionalidades ou responsabilidades (JUNIOR, 2007, p.76)

Resumindo Jones (2001), observasse uma afirmao onde se diz que para
ser orientado a objetos fundamental respeitar alguns conceitos, tais como:
encapsulamento, ocultao de informao e implementao, reteno de estado,
identidade de objeto, mensagens, classes, herana, polimorfismo e generalizao.
Caractersticas da programao orientada a objetos:

Encapsulamento na orientao a objetos um conjunto de atributos e


mtodos aonde representa um estado em um objeto, estes atributos tm
nveis de visibilidade dentro da aplicao, onde somente as operaes do
objeto tm permisso para acessar o atributo.

Ocultao de informao e implementao controle da visibilidade dos


dados ou implementao do que se deseja encapsular.

Reteno de estado a capacidade de um objeto guardar uma informao


e possa futuramente repass-la caso seja necessrio.

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


entidade nica dentro do sistema

Mensagem a capacidade de comunicao entre os objetos a fim de fazer


um pedido para que um ouro objeto aplique um de seus mtodos

Classes so mecanismos que definem comportamento e estrutura de


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

Herana a habilidade de herdar atributos e mtodos de outra classe.

17

Polimorfismo a capacidade de uma operao se comportar de maneira


diferente para classes diferentes

Generalizao a relao de uma classe com outras mais especficas

3.3 BIBLIOTECAS DE PROGRAMAO LINEAR


3.3.1 Gnu Linear Programming Kit (GLPK)
O GLPK uma biblioteca que possui componentes matemticos que
possibilitam a resoluo de problemas de programao linear, um dos componentes
oferecido por ele o simplex dual e primal.
Ele disponibilizado para todas as pessoas que tenham interesse de utilizlo, da mesma maneira ele esta disponvel tambm para a comunidade de
desenvolvedores, o GLPK protegido utilizando-se dos termos da licena GNU,
sendo assim, ele denominado como um software livre, ou seja, um projeto de
cdigo fonte aberto, cdigo livre, ele foi escrito na linguagem de programao C e
alm de fornecer soluo programao linear tambm oferece solues no
contexto de programao inteira mista, alm de varias outras tcnicas da pesquisa
operacional.
O GNU Linear Programming (GLPK) um pacote de software
destinado a resolver problemas em larga escala de programao
linear (LP), de programao inteira mista (MIP), e outros problemas
relacionados (MENDONA SANTOS, 2011, p.03)

Bressan (2004) tambm afirma que o GLPK um software livre O software


GLPK Gnu Linear Programming Kit, por exemplo, consiste em uma biblioteca de
programao linear com cdigo fonte aberto (BRESSAN e LEITE DE OLIVEIRA,
2004,p.336).
Devido as suas caractersticas, o GLPK uma alternativa interessante para
ser utilizado em aplicativos que visam resolver problemas de programao linear,
pois ele oferece tudo que necessrio para resoluo de tal problema, alm claro
de ser um timo software.

18

3.3.2 SCPSolver
O SCPSolver uma soluo interessante para desenvolvedores JAVA que
desejam ter acesso biblioteca GLPK que escrita em C, o SCPSolver possibilita a
utilizao de trs bibliotecas que so 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 rpido e
descomplicado as bibliotecas de programao linear por parte dos programadores
JAVA, sendo que essas bibliotecas so escritas em sua grande maioria em C/C++,
desta forma o SCPSolver esta possibilitando a portabilidade de desenvolvimento e
uso para desenvolvedores e usurio que fazem uso das plataformas Windows, Linux
e Mac Os x.
SCPSolver atualmente funcional com a JVM de 32 bits e com a verso 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
implementao sendo uma de alto nvel e uma de baixo nvel.

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 Gonalves (2006) afirmado que o IDE teve um investimento por parte da
IBM de mais de quarenta milhes de dlares no seu desenvolvimento, tempos
depois transforma o IDE em um projeto de cdigo livre chamado de Eclipse.org, que
inicialmente comeou 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 cdigo
aberto, por sua vez ele livre. "O eclipse em si fornece apenas o ambiente integrado
para execuo dos plug-ins e uns poucos plug-ins bsicos, como editor de textos
ASCII, sistema de ajuda e integrao aos CVS"(GONALVES, 2006, p22). Na figura
3 mostrada a estrutura bsica do Eclipse.
FIGURA 3 ESTRUTURA BSICA DO ECLIPSE

FONTE: (GONALVES, 2006, P24).

20

Entre outros o Eclipse multiplataforma, assim como tem suporte a vrios


idiomas, assim como vrias linguagens de programao. Voc pode programar em
outras linguagens como C/C++, Cobol e at mesmo C#. (Gonalves, 2006, p26).
3.5 ASTAH
O Astah um aplicativo que permite modelagem visual de diagramas, tais
como diagramas de sequncia, 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 verses no gratuitas e uma verso
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
criao de diagramas UML, tem uma verso para uso livre porm no de codigo

21

aberto, e outras verses mais completas so vendidas. Sendo as verses: Astah


Community, Astah UML, Astah Professional e Astah Share.

22

4 SISTEMA PROPOSTO
Visando integrao com SCPSolver que faz uso da biblioteca GLPK, ser
criando um aplicativo que possibilite ao usurio a insero de um modelo
matemtico de programao linear, ficando a cargo do aplicativo transformar o
modelo inserido pelo usurio em um modelo legvel ao SCPSolver, que por sua vez
utilizada o GLPK para fazer os devidos clculos, ficando tambm a cargo do
aplicativo proposto interpretar os dados retornado pelo SCPSolver e disponibilizar os
resultados ao usurio utilizador. O aplicativo recebeu o nome de OptLiAna.
4.1 OBJETIVO GERAL DO SISTEMA
Desenvolver um aplicativo para resoluo de problemas de programao linear,
especificamente na forma de um editor, possibilitando que o usurio de forma simples
possa obter resultado para problemas de programao linear.
4.2 REQUISITOS FUNCIONAIS DO SISTEMA

O aplicativo deve conter uma rea de texto para que o usurio possa colocar sua

modelagem matemtica de programao linear.


Deve executar problemas de programao linear.
Deve existir um boto para executar a modelagem
Deve possibilitar ao usurio manipular o arquivo, ou seja, salvar, abrir e criar novo,

assim como, opo para fechar o aplicativo.


O aplicativo deve conter opo de edio de arquivo, tais como: colar, copiar,

selecionar tudo, fazer, refazer, deletar.


Deve existir um menu com opo de ajuda, onde mostre exemplos de formatos

suportados.
Deve existir uma tela de resultado, onde seja imprimido o resultado, caso o
problema seja impossvel de se resolver, uma tela mostrada com a mensagem

No foi encontrada soluo.


Deve existir um menu de ajuda mostrando exemplos de modelos suportados.
O aplicativo deve possibilitar ao usurio acesso aos menus de forma que o usurio

possa usar o mouse, assim como apenas o teclado.


Quando o usurio selecionar criar um arquivo, o aplicativo deve verificar se
existe um arquivo editado na rea de texto, caso exista, o sistema deve emitir

23

um alerta, perguntando se o usurio deseja salvar o atual arquivo, assim

como a opo de cancelar a operao para retornar ao editor.


Ao selecionar a opo 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 no exista arquivo em disco, o
sistema deve abrir a tela de dilogo com a opo para salvar o arquivo, assim

como selecionar a pasta de destino.


Do mesmo modo quando for selecionado a opo para sair do aplicativo, o
aplicativo deve verificar se existe arquivo em edio na rea de texto, caso
exista, o sistema deve emitir um alerta, perguntando se o usurio deseja
salvar o atual arquivo, assim como a opo de cancelar a operao para

retornar ao editor.
Ao executar um arquivo o sistema deve verificar se est selecionado a opo
maximizar ou minimizar, caso no esteja, deve-se emitir um alerta ao usurio
sobre tal condio.
As mensagens de erro devem aparecer em um campo de texto inferior.
Deve existir atalhos de teclado para as funes do aplicativo, exceto para o item de
menu denominado sobre.
4.3 REQUISITOS NO FUNCIONAIS DO SISTEMA

Deve-se restringir a entrada de modelagem que no tenham seus elementos

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


A funo objetivo, restries do modelo e variveis de deciso 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 NMEROS E INCGNITAS


Formato

dos Formato

Formato

elementos:

do

incgnita:

-1.2x1

nmero:
-1.2

X1

da Descrio:

Nmeros negativos.

24

1.2x1

1.2

x1

Nmero

irracional

representado

com

2
-2
1.2

ponto.
x1
Nmero inteiro
umaincognitagrande Nmeros negativos.
umaincognitagrande Exemplo
de

2umaincognitagrande

incgnita grande
umaincognitagrande Outro exemplo com

1.208275340848026x1

1.2082753

x1

2x1
-2umaincognitagrande
1.2umaincognitagrande

um nmero inteiro.
Exemplo de um

40848026

nmero irracional.

FONTE: (O AUTOR).
TABELA 2 SINAIS DE RESTRIO
Sinais de restrio:

Descrio:

<=

Menor ou igual.

>=

Maior ou igual.

Igual.

FONTE: (O AUTOR).

TABELA 3 REGRAS
Elementos da modelagem
Funo objetivo

Descrio
Deve estar na primeira linha em referncia aos

Restries do modelo
Variveis de deciso

outros itens.
Cada restrio deve estar em uma nica linha.
Deve obedecer a logica da modelagem, ela deve
estar na funo objetivo.

FONTE: (O AUTOR).
TABELA 4 EXEMPLIFICAO

25

Modelo.
1.208275340848026x1+x2

Descrio
Cada linha deve conter apenas o que se

x1<=9.208275340848026

destina a ela, ou seja, cada equao deve

x2<=9

estar em uma linha.

x1>=0
x2>=0
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 generalizao dos casos de uso do aplicativo,
sendo esses casos: manter arquivo; Editar arquivo; Executar arquivo e Acessar
contedo de ajuda. Eles esto descritos nas tabelas 5, 6, 7 e 8. A representao
grfica do caso de uso geral est em evidencia na figura 5.

FIGURA 5 CASO DE USO GERAL

26

FONTE: (O AUTOR).
TABELA 5 MANTER ARQUIVO
Nome do caso de uso.
Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.
Pr-condies
Ps-Condies
Fluxo Principal
Aes do Ator
1. Selecionar menu Arquivo.

Manter Arquivo.
Usurio.
Este caso descreve as etapas
percorridas por um usurio para
acessar as opes de manter arquivo.

Aes do Sistema
2. Apresentar itens do menu Arquivo

Restries/validaes.
FONTE: (O AUTOR).
TABELA 6 EDITAR ARQUIVO

27

Nome do caso de uso.


Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.
Pr-condies
Ps-Condies
Fluxo Principal
Aes do Ator
1. Selecionar menu Editar.

Editar Arquivo.
Usurio.
Este caso descreve as etapas
percorridas por um usurio para
acessar as opes de editar o arquivo

Aes do Sistema
2. Apresentar itens do menu Editar

Restries/validaes.
FONTE: (O AUTOR).
TABELA 7 EXECUTAR O ARQUIVO
Nome do caso de uso.
Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.

Pr-condies
Ps-Condies
Fluxo Principal
Aes do Ator
1. Selecionar menu Execuo.

Executar Arquivo.
Usurio.
Este caso descreve as etapas
percorridas por um usurio para
acessar as opes para executar o
arquivo

Aes do Sistema
2. Apresentar itens do menu Execuo

Restries/validaes.
FONTE: (O AUTOR).

TABELA 8 ACESSAR CONTEDO DE AJUDA

28

Nome do caso de uso.


Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.

Precondies
Ps-Condies
Fluxo Principal
Aes do Ator
1. Selecionar menu Ajuda.

Acessar contedo de ajuda.


Usurio.
Este caso descreve as etapas
percorridas por um usurio para
acessar as opes do menu contedo
de ajuda.

Aes do Sistema
2. Apresentar itens do menu Ajuda.

Restries/validaes.
FONTE: (O AUTOR).
4.4.2 Caso de Uso Especifico Manter Arquivo
Segue as tabelas 9, 10, 11, 12 e 13 com as descries especficas dos
respectivos casos de uso: Criar novo arquivo, Abrir arquivo, salvar arquivo, Salvar
arquivo como, selecionar sair, a especificao do caso de uso Manter Arquivo pode
ser observado na figura 6.

FIGURA 6 MANTER O ARQUIVO

29

FONTE: (O AUTOR).
TABELA 9 CRIAR NOVO ARQUIVO
Nome do caso de uso.
Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.
Pr-Condies.
Ps-Condies.
Fluxo Principal.
Aes do Ator.
1. Selecionar o menu de Arquivo.

Criar novo arquivo


Usurio.
Este caso descreve as etapas
percorridas por um usurio para
Criar um novo arquivo.

Aes do Sistema.
2. Apresentar os itens do menu
de Arquivo.

3. Seleciona o item de menu Executar


Restries/validaes.

4. Cria um novo arquivo.


Caso exista um arquivo com
alterao no campo de edio do
editor o sistema de emitir uma
mensagem ao usurio

30

perguntando se deseja salvar o


arquivo.
Fluxo Alternativo Criar novo arquivo
Aes do Ator.
Aes do Sistema.
1. Pressionar as teclas ctrl+n.
3. Cria um novo arquivo.
Restries/validaes.
Caso exista um arquivo com
alterao no campo de edio do
editor o sistema de emitir uma
mensagem ao usurio
perguntando se deseja salvar o
arquivo.
FONTE: (O AUTOR).
TABELA 10 ABRIR O ARQUIVO
Nome do caso de uso.
Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.
Pr-Condies.
Ps-Condies.
Fluxo Principal.
Aes do Ator.
1. Selecionar o menu de Arquivo.

Abrir arquivo
Usurio.
Este caso descreve as etapas
percorridas por um usurio para
Abrir um arquivo.

Aes do Sistema.
2. Apresentar os itens do menu de
Arquivo.

3. Seleciona o item de menu Abrir


arquivo.
4. Apresenta a janela com as
opes de abrir arquivo e cancelar a
operao.
5. Seleciona o arquivo e pressiona
o boto Abrir.
6. Apresenta o arquivo no campo de
edio do editor.
Restries/validaes.
Fluxo Alternativo Criar novo arquivo - Cancelar
Aes do Ator.
Aes do Sistema.
1. Selecionar o menu de Arquivo.
2. Apresentar os itens do menu de
Arquivo.
3. Seleciona o item de menu Abrir
arquivo.

31

4. Apresenta a janela com as


opes de abrir arquivo e cancelar a
operao.
5. Pressiona o boto Cancelar.
6. Fecha a janela de dilogo.
Fluxo Alternativo 2 Criar novo arquivo
Aes do Ator.
Aes do Sistema.
1. Pressiona as teclas ctrl+n.
4. Apresenta a janela com as
opes de abrir arquivo e cancelar a
operao.
5. Pressiona o boto Cancelar.
6. Fecha a janela de dilogo.
Fluxo Alternativo 3 Criar novo arquivo
Aes do Ator.
Aes do Sistema.
1. Pressiona as teclas ctrl+n.
2. Apresenta a janela com as
opes de abrir arquivo e cancelar a
operao.
3. Seleciona o arquivo e pressiona
o boto Abrir.
4. Apresenta o arquivo no campo de
edio do editor.
FONTE: (O AUTOR).
TABELA 11 SALVAR O ARQUIVO
Nome do caso de uso.
Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.
Pr-Condies.
Ps-Condies.
Fluxo Principal.
Aes do Ator.
1. Selecionar o menu de Arquivo.

Salvar arquivo
Usurio.
Este caso descreve as etapas
percorridas por um usurio para
Salvar um arquivo.

Aes do Sistema.
2. Apresentar os itens do menu de
Arquivo.

3. Seleciona o item de menu Salvar.


4. Apresenta a janela com as
opes Para salvar o arquivo e
cancelar a operao.
5. Nomeia o arquivo e pressiona o
boto Salvar.

32

Restries/validaes.

6. Escreve o arquivo em disco.


Deve existir contedo na rea de
edio do editor.

Fluxo Alternativo Salvar Arquivo


Aes do Ator.
1. Selecionar o menu de Arquivo.

Aes do Sistema.
2. Apresentar os itens do menu de
Arquivo.

3. Seleciona o item de menu Salvar.


Restries/validaes.

4. Escreve o arquivo em disco.


Arquivo ser salvo deve existir
em disco.

Fluxo Alternativo 2 Salvar arquivo


Aes do Ator.
1. Pressiona as teclas ctrl+s

Aes do Sistema.
2. Apresenta a janela com as
opes Para salvar o arquivo e
cancelar a operao.

3. Nomeia o arquivo e pressiona o


boto Salvar.
Restries/validaes.

4. Escreve o arquivo em disco.


Deve existir contedo na rea de
edio do editor.

Fluxo Alternativo 3 Salvar arquivo


Aes do Ator.
1. Pressiona as teclas ctrl+s

Aes do Sistema.

4. Escreve o arquivo em disco.


Arquivo ser salvo deve existir
em disco.
Fluxo Alternativo 4 Cancelar Salvar arquivo
Aes do Ator.
Aes do Sistema.
1. Pressiona as teclas ctrl+s
2. Apresenta a janela com as
opes Para salvar o arquivo e
cancelar a operao.
3. Pressiona o boto Cancelar.
4.Fecha a janela de dilogo e no
salva o arquivo.
Restries/validaes.

FONTE: (O AUTOR).

TABELA 12 SALVAR ARQUIVO COMO


Nome do caso de uso.
Caso de Uso Geral.

Salvar arquivo como

33

Ator Principal.
Atores Secundrios.
Resumo.
Pr-Condies.
Ps-Condies.
Fluxo Principal.
Aes do Ator.
1. Selecionar o menu de Arquivo.

Usurio.
Este caso descreve as etapas
percorridas por um usurio para
Salvar um arquivo como.

Aes do Sistema.
2. Apresentar os itens do menu
de Arquivo.

3. Seleciona o item de menu Salvar


como.
4. Apresenta a janela com as
opes Para salvar o arquivo e
cancelar a operao.
5. Nomeia o arquivo e pressiona o
boto Salvar.
6. Escreve o arquivo em disco.
Restries/validaes.
Fluxo Alternativo Cancelar Salvar arquivo como
Aes do Ator.
Aes 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
opes Para salvar o arquivo e
cancelar a operao.
5. Nomeia o arquivo e pressiona o
boto Cancelar.
6.Fecha a janela de dilogo e
no salva o arquivo.
FONTE: (O AUTOR).

TABELA 13 SELECIONAR SAIR


Nome do caso de uso.
Caso de Uso Geral.

Selecionar sair

34

Ator Principal.
Atores Secundrios.
Resumo.
Pr-Condies.
Ps-Condies.
Fluxo Principal.
Aes do Ator.
1. Selecionar o menu de Arquivo.

Usurio.
Este caso descreve as etapas
percorridas por um usurio para
sair do editor.

Aes do Sistema.
2. Apresentar os itens do menu de
Arquivo.

3. Seleciona o item de menu Sair


Restries/validaes.

Fluxo Alternativo Selecionar sair


Aes do Ator.
1. Pressionar o boto X.

Restries/validaes.

Restries/validaes.

4.4.3 Caso de uso Executar arquivo

4. Encerra a execuo do
aplicativo.
Caso exista um arquivo com
alterao no campo de edio do
editor o sistema de emitir uma
mensagem ao usurio
perguntando se deseja salvar o
arquivo.
Aes do Sistema.
3. Cria um novo arquivo.
4. Encerra a execuo do
aplicativo.
Caso exista um arquivo com
alterao no campo de edio do
editor o sistema de emitir uma
mensagem ao usurio
perguntando se deseja salvar o
arquivo.
Caso exista um arquivo com
alterao no campo de edio do
editor o sistema de emitir uma
mensagem ao usurio
perguntando se deseja salvar o
arquivo.

35

Esta descrio de caso de uso referente ao que usurio exerce sobre o


aplicativo no que diz respeito a execuo 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.
Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.
Pr-Condies.
Ps-Condies.
Fluxo Principal.
Aes do Ator.
1. Selecionar na barra de ferramentas
o radiobutton para minimizar ou
maximizar.

Executar arquivo
Usurio.
Este caso descreve as etapas
percorridas por um usurio para
Executar o arquivo em edio.
Insero de contedo na rea de
texto do editor.
Aes do Sistema.

36

2. Selecionar menu Execuo.


3. Apresentar o item do menu
Execuo.
4. Seleciona o item de menu Executar
Restries/validaes.

5. Mostra a tela de resultado


contendo a soluo.
Caso exista no conformidade
na edio do arquivo, o sistema
deve retornar uma mensagem
de erro.

Fluxo Alternativo Executar arquivo


Aes do Ator.
Aes 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 soluo.
Restries/validaes.
Caso exista no conformidade
na edio do arquivo, o sistema
deve retornar uma mensagem
de erro.
FONTE: (O AUTOR).
4.4.4 Caso de Uso Editar Arquivo
Esta descrio de caso de uso referente s aes que usurio exerce sobre
o aplicativo no que diz respeito edio do arquivo, ficando evidente nas tabelas 15
at a tabela 21 e na figura 8.

FIGURA 8 EDITAR O ARQUIVO

37

FONTE: (O AUTOR).
TABELA 15 DESFAZER ALTERAES NO ARQUIVO
Nome do caso de uso.
Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.

Pr-Condies.
Ps-Condies.
Fluxo Principal.
Aes do Ator.
1. Selecionar menu Editar.

Desfazer alteraes no arquivo


Usurio.
Este caso descreve as etapas
percorridas por um usurio para
desfazer alteraes no arquivo em
edio.

Aes do Sistema.
2. Apresentar itens do menu Editar.

3. Seleciona o item de menu Desfazer


Adio.
4. Desfaz a ltima alterao feita no
arquivo em edio
Restries/validaes.
Fluxo Alternativo Desfazer alteraes no arquivo

38

Aes do Ator.
1. Pressionar as teclas ctrl+z.

Aes do Sistema.
2. Desfaz a ltima alterao feita no
arquivo em edio.

FONTE: (O AUTOR).
TABELA 16 REFAZER ALTERAES NO ARQUIVO
Nome do caso de uso.
Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.

Pr-Condies.
Ps-Condies.
Fluxo Principal.
Aes do Ator.
1. Selecionar menu Editar.

Refazer alteraes no arquivo


Usurio.
Este caso descreve as etapas
percorridas por um usurio para
refazer alteraes no arquivo em
edio.

Aes do Sistema.
2. Apresentar itens do menu Editar.

3. Seleciona o item de menu Refazer


Adio.
4. Refaz a ltima alterao feita no
arquivo em edio
Restries/validaes.
Fluxo Alternativo Desfazer alteraes no arquivo
Aes do Ator.
Aes do Sistema.
1. Pressionar as teclas ctrl+y
2. Refaz a ltima alterao feita no
arquivo em edio.
FONTE: (O AUTOR).
TABELA 17 RECORTAR CONTEDO DO ARQUIVO
Nome do caso de uso.
Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.
Pr-Condies.

Recortar contedo do arquivo


Usurio.
Este caso descreve as etapas
percorridas por um usurio para
utilizar a opo de recorte.

39

Ps-Condies.
Fluxo Principal.
Aes do Ator.
1. Seleciona o contedo que deseja
recortar no editor
2. Selecionar menu Editar.

Aes do Sistema.

3. Apresentar itens do menu Editar.


4. Seleciona o item de menu Recortar.
5. Recortar o contedo selecionado.
Restries/validaes.
Fluxo Alternativo Recortar contedo do Arquivo.
Aes do Ator.
Aes do Sistema.
1. Seleciona o contedo que deseja
recortar no editor
2. Pressionar as teclas ctrl+x
3. Desfaz a ltima alterao feita .
FONTE: (O AUTOR).
TABELA 18 COPIAR CONTEDO DO ARQUIVO
Nome do caso de uso.
Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.
Pr-Condies.
Ps-Condies.
Fluxo Principal.
Aes do Ator.
1. Seleciona o contedo que deseja
copiar.
2. Selecionar menu Editar.

Copiar contedo do arquivo


Usurio.
Este caso descreve as etapas
percorridas para copiar o contedo.

Aes do Sistema.

3. Apresentar itens de o menu Editar.


4. Seleciona o item de menu Copiar.
5. Copiar o contedo selecionado.
Restries/validaes.
Fluxo Alternativo Copiar contedo do Arquivo.
Aes do Ator.
Aes do Sistema.
1. Seleciona o contedo.
2. Pressionar as teclas ctrl+c
3. Copiar o contedo selecionado.
FONTE: (O AUTOR).
TABELA 19 COLAR CONTEDO NO ARQUIVO

40

Nome do caso de uso.


Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.

Pr-Condies.
Ps-Condies.
Fluxo Principal.
Aes do Ator.
1. Selecionar menu Editar.

Colar contedo no arquivo


Usurio.
Este caso descreve as etapas
percorridas por um usurio para colar
o contedo no campo de texto do
editor.

Aes do Sistema.
2. Apresentar itens do menu Editar.

3. Seleciona o item de menu Colar.


4. Cola o contedo previamente
copiado no campo de edio do editor.
Restries/validaes.
Fluxo Alternativo Copiar contedo do Arquivo.
Aes do Ator.
Aes do Sistema.
1. Pressionar as teclas ctrl+v.
2. Cola o contedo previamente
copiado no campo de edio do editor.
FONTE: (O AUTOR).
TABELA 20 SELECIONAR TODO O CONTEDO DO ARQUIVO
Nome do caso de uso.
Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.

Pr-Condies.
Ps-Condies.
Fluxo Principal.
Aes do Ator.
1. Selecionar menu Editar.

Selecionar todo o contedo do


arquivo
Usurio.
Este caso descreve as etapas
percorridas por um usurio para
selecionar todo o contedo do arquivo
em edio.

Aes do Sistema.
2. Apresentar itens do menu Editar.

3. Seleciona o item de menu


Selecionar Tudo.
4. Seleciona todo o contedo do
arquivo em edio.
Restries/validaes.

41

Fluxo Alternativo Selecionar todo o contedo do Arquivo.


Aes do Ator.
Aes do Sistema.
1. Pressionar as teclas ctrl+a.
2. Seleciona todo o contedo do
arquivo em edio
FONTE: (O AUTOR).
TABELA 21 DELETAR O CONTEDO DO ARQUIVO
Nome do caso de uso.
Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.
Pr-Condies.
Ps-Condies.
Fluxo Principal.
Aes do Ator.
1. Seleciona o contedo do arquivo
em edio.
2. Selecionar menu Editar.

Deletar o contedo do arquivo


Usurio.
Este caso descreve as etapas
percorridas por um usurio para
Deletar o contedo do arquivo.

Aes do Sistema.

3. Apresentar itens do menu Editar.


4. Seleciona o item de menu Deletar.
4. Deleta o contedo selecionado.
Restries/validaes.
Fluxo Alternativo Deletar o contedo do arquivo.
Aes do Ator.
Aes do Sistema.
1. Pressiona as tecla Delete
2. Deleta o contedo selecionado
Fluxo Alternativo 2 Deletar o contedo do arquivo.
1. Posiciona o cursor esquerda do
contedo e pressiona Delete.
2. Deleta caracteres a direita.
FONTE: (O AUTOR).

4.4.5 Acessar contedo de ajuda

42

O caso de uso Acessar contedo de ajuda descrito nas tabelas 22 e 23 e


tem sua representao grfica na figura 9.
FIGURA 9 OBTER AJUDA

FONTE: (O AUTOR).
TABELA 22 OBTER AJUDA
Nome do caso de uso.
Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.

Pr-Condies
Ps-Condies

Obter ajuda.
Usurio.
Este caso descreve as etapas
percorridas por um usurio para
acessar o contedo de ajuda do
sistema.

43

Fluxo Principal
Aes do Ator
1. Selecionar menu de Ajuda.

Aes do Sistema
2. Apresentar itens do menu
Ajuda.

3. Seleciona o item de menu


Contedo de Ajuda.
4. Apresentar tela com contedo
de ajuda.
Restries/validaes.
Fluxo Alternativo Obter Ajuda
Aes do Ator
1. Pressionar a tecla F1.

Aes do Sistema
2. Apresentar tela com contedo
de ajuda.

FONTE: (O AUTOR).
TABELA 23 OBTER INFORMAES SOBRE O APLICATIVO
Nome do caso de uso.
Caso de Uso Geral.
Ator Principal.
Atores Secundrios.
Resumo.

Pr-Condies
Ps-Condies
Fluxo Principal
Aes do Ator
1. Selecionar menu de Ajuda.

Obter informaes sobre o


aplicativo.
Usurio.
Este caso descreve as etapas
percorridas por um usurio para
acessar o contedo com
informaes sobre o aplicativo.

Aes do Sistema
2. Apresentar itens do menu
Ajuda.

3. Seleciona o item de menu Sobre o


Optiliana.
4. Apresentar tela com contedo
de Descrio do Optliana.
Restries/validaes
FONTE: (O AUTOR).

4.5 DIAGRAMAS DE SEQUENCIA

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

45

FONTE: (O AUTOR).

FIGURA 12 EXECUTAR O ARQUIVO

46

FONTE: (O AUTOR).

FIGURA 13 SELECIONAR AJUDA

47

FONTE: (O AUTOR).
4.6 DIAGRAMAS DE CLASSE
Neste captulo so apresentados os diagramas de classes da aplicao,
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 INCIO

48

FONTE: (O AUTOR).
FIGURA 15 MENSAGEM

FONTE: (O AUTOR).

49

FIGURA 16 IO

FONTE: (O AUTOR).

50

FIGURA 17 CDIGO

FONTE: (O AUTOR).

51

FIGURA 18 EQUAO

FONTE: (O AUTOR).

FIGURA 19 TELAS

52

FONTE: (O AUTOR).
5 CRONOGRAMA

53

TABELA 24 NDICE DE ATIVIDADES PARAO CRONOGRAMA


Siglas
E1

Descrio
Escolha do tema e orientador, proposta do projeto.

E2

Apoio do orientador na execuo do projeto.

E3
E4
E5

Pesquisa bibliogrfica
Fundamentao terica
Desenvolvimento do projeto lgico

E6
E7

Desenvolvimento do sistema
Testes

E8
E9

Reviso dos testes


Entrega do sistema e apresentao final.

FONTE: (O AUTOR).
TABELA 25 CRONOGRAMA
Ms

Jul
2013
Atividades E1
E2

Ago
2013

Set
2013

Out
2013

Nov
2013

Feb
2014
E1

Mar
2014

Abr
2014

Mai
2014

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

Jun
2014

E9
FONTE: (O AUTOR).
6 RESULTADOS OBTIDOS
O aplicativo para resoluo de problemas de programao linear foi nomeado de
OptiLiAna e composto pelas seguintes caractersticas:

54

A tela principal descrita na figura 20.

Na figura 21 representado o menu de arquivo que tambm 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 trs itens, um boto executar e dois botes de seleo rdio,
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 soluo e a figura 28


mostrada a tela do modelo sem soluo.

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

As telas com os alertas para salvar e para reescrever arquivo esto


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
no 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 invlido.

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


arquivo que no um modelo de programao 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

55

Aps descompactar e executar o arquivo OptiLiAna.jar, o usurio vai se


deparar com a tela descrita na figura 20, nesta tela o usurio pode editar sua
modelagem matemtica que visa ser resolvida com a programao linear, existe um
menu com os itens, arquivo, editar, execuo, existe tambm uma opo de ajuda,
alm disso o usurio conta com uma barra onde contem opes para sua
modelagem matemtica onde ele pode selecionar maximizar ou minimizar e tambm
executar o arquivo
No canto superior direito esta localizada as opes do aplicativo, onde
possvel maximizar, minimizar ou fechar o aplicativo, no canto superior esquerdo
encontra-se o nome do aplicativo e o cone do mesmo, caso o exista edio 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 sero exibidas.
FIGURA 20 TELA INICIAL

FONTE: (O AUTOR).
O menu (Arquivo) expresso na figura 21 composto por opes que auxiliam
o usurio na edio do arquivo, uma destas opes o item que tem por nome

56

(Novo) ou as teclas de atalho (Ctrl+N) as opes de como o usurio pode criar um


arquivo, tambm existe a opo (Abrir) ou as teclas de atalho (Ctrl+O) que possibilita
abrir um arquivo existente, a opo (Salvar) ou as teclas de atalho (Ctrl+S) permite
que o usurio salve o arquivo, a opo (Salvar Como) permite que o usurio salve
um arquivo, a opo (Sair) quando selecionada fecha o aplicativo.
Os cones do menu so inspirados no padro do sistema operacional, os
atalhos so 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
usurio tem como opes, clicar em (Desfazer) ou usar as teclas de atalho (Ctrl+Z)
para desfazer, especificamente essa opo tem como objetivo desfazer a ltima
ao do usurio no editor de texto, logo no que diz respeito a edio de texto,
tambm neste contexto de edio de texto existe a opo (Refazer) que se torna
ativa para uso somente se o usurio j desfez alguma ao, sendo assim, ao

57

selecionar essa opo ou usar as teclas de atalho (Ctrl+Y) o usurio refaz seu texto
desfeito, ambas as operaes de desfazer e refazer desfaz e refaz caractere por
caractere.
O item (Recortar) ou as teclas de atalho (Ctrl+X) possibilita que o usurio
recorte o texto selecionado, o item (Copiar) ou as teclas de atalhos (Ctrl+C) permite
que o usurio 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 contedo contido no
editor.
O item (Deletar) do menu ou a tecla (Delete) ao ativar deleta o contedo
selecionado do editor.
FIGURA 22 MENU EDITAR

FONTE: (O AUTOR).

58

Na figura 23 mostrado o menu (Execuo) e seu nico item (Executar), essa


uma opo que o usurio pode utilizar para executar o arquivo, o usurio pode
tambm utilizar a tecla (F5).
FIGURA 23 MENU EXECUTAR ARQUIVO

FONTE: (O AUTOR).
O menu (Ajuda) visto na figura 24 disponibiliza ao usurio duas opes,
sendo a opo (Contedo de Ajuda) ou a tecla de Atalho (F1) que traz ao usurio
dicas de uso do aplicativo, essas dicas so uteis ao usurio, pois fara com que ele
insira de maneira correta os dados no editor do aplicativo, se o usurio teve pouco
contado com programao linear o contedo de ajuda do aplicativo pode ser uma
forma de o usurio ter uma noo ou esclarecimento sobre os itens da modelagem
de programao linear, tambm possvel acessar o item (Sobre o OptiLiAna) onde
fornece ao usurio utilizador informaes sobre o autor do aplicativo.

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 usurio aps o
mesmo selecionar (Abrir) ou fazer uso das teclas de atalho (Ctrl+O), nesta tela o
usurio poder navegar no sistema de arquivo de seu sistema operacional,
selecionar o arquivo que deseja editar e finalmente clicar no boto (abrir), feito isto o
contedo do arquivo estar no editor de texto do aplicativo, existe tambm o boto
(Cancelar) que possibilita ao usurio cancelar a operao, se clicar este boto, a
janela de dialogo fechara e o usurio voltara para a tela inicial do aplicativo.

60

FIGURA 25 ABRIR ARQUIVO

FONTE: (O AUTOR).
Se o usurio fizer uso da opo (Salvar Como) do menu (Arquivo) vai se
deparar com a tela representada na figura 26, essa tela permite que o usurio
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 usurio deve clicar no boto (salvar) nomear o arquivo e adicionar ou no uma
extenso ao arquivo feito isto a tela de dialogo fechara e o usurio retornara a tela
inicial do aplicativo, porem o contedo salvo continuara no editor do aplicativo, o
usurio tambm conta com a opo de cancelar a operao se for clicado o boto
(Cancelar) da janela de dialogo, a janela ser fechada e o usurio retornara a tela
inicial do aplicativo, o contedo continuara na rea de edio do aplicativo, porem
no estar salvo.

61

FIGURA 26 SALVAR ARQUIVO

FONTE: (O AUTOR).
6.3 CARACTERISTICAS DOS RESULTADOS
O usurio tem a sua disposio duas opes 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
soluo, a tela composta por itens, sendo a mensagem de soluo tima
encontrada, onde afirma que uma soluo foi encontrada, em outra linha se encontra
o valor objetivo que se refere ao valor da funo objetivo, nas linhas a seguir abaixo
da frase (VALORES DAS VARIAVEIS) evidenciado em cada linha uma varivel de
deciso e seu respectivo valor resultante do calculo pelo GLPK, na linha em que se
encontra a palavra (MAXIMIZAR) representada a funo objetiva inserida pelo
usurio e nas linhas abaixo o restante da modelagem inserida pelo usurio, essa
descrio da modelagem til, pois se o usurio no fechar ou fechar a janela, ele
pode escrever um novo modelo matemtico e executar, caso ele no tenha fechado

62

a janela uma nova janela de resultado ser exibida, sendo assim mais tarde ele
pode navegar entre as janelas de resultado e a existncia 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 usurio encontra as opes 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 SOLUO

FONTE: (O AUTOR).
Outra tela de resultado mostrada na figura 28, esta tela alm das opes de
maximizar, minimizar e fechar e a identificao da tela e do aplicativo so uma

63

mensagem de (No foi encontrada soluo) neste caso, significar que o modelo
executado no tem soluo.
FIGURA 28 TELA DE RESULTADO DE MODELO SEM SOLUO

FONTE: (O AUTOR).

64

6.4 CARACTERISTICAS INFORMATIVAS


Ao selecionado o menu (Ajuda) e em seguida acionado o item de menu
(Contedo de Ajuda) ou pressionar a tecla de atalho (F1) o usurio tem a sua
disposio uma tela com algumas informaes sobre o aplicativo, dentre estas
informaes se encontra a descrio do ambiente ao qual o aplicativo foi testado,
assim como instrues de uso, esclarecendo ao usurio o formato numrico a ser
utilizado, os tipos de sinais suportados, exemplos de modelagem, ordem dos
elementos do modelo matemtico. A figura 29 se refere a tela descrita.
FIGURA 29 TELA DE AJUDA

FONTE: (O AUTOR).

65

Quando o usurio est tentando salvar um arquivo com o mesmo nome em


um mesmo diretrio, acionada uma janela de dialogo descrita na figura 30, onde
perguntando ao usurio se o mesmo deseja sobrescrever o arquivo j existente,
caso o usurio selecione (Sim), o arquivo existente ser sobrescrito, caso ele
selecione (No) a janela de dialogo fechada e o foco direcionado ao editor, neste
caso o contedo do editor no estar salvo.
FIGURA 30 TELA DE ALERTA PARA SOBRESCREVER ARQUIVO

FONTE: (O AUTOR).
A figura 31 representa uma janela de dialogo que o usurio se depara quando
existe um contedo ainda no salvo no editor e o usurio tenta criar um arquivo ou
fechar o aplicativo utilizando qualquer recurso disponvel para este fim, neste caso o
usurio conta com duas opes, ele pode acionar os botes (Sim) ou (No), sendo
obrigatrio, escolher uma das opes.
Se o usurio decidir cancelar a operao, a janela de dialogo fechara
retornando o foco para o aplicativo, sem ter feito qualquer modificao no contedo
do editor, no entanto o arquivo continua sem ser salvo.
Porem se o usurio decidir optar por escolher em no salvar o arquivo, um
novo arquivo criado, e neste caso o contedo existente no editor descartando.
Mas se o usurio 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 usurio
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 usurio um editor vazio.

66

FIGURA 31 TELA DE ALETAR PARA SALVAR

FONTE: (O AUTOR).
Na figura 32 esta representada a tela que se apresenta ao usurio aps ele
ter navegado no menu (Ajuda) e ter selecionado a opo de item de menu (Sobre o
OptiLiAna), essa tela tem como objetivo fornecer uma informao bsico sobre a
autoria do aplicativo, essa tela composta pelo nome do aplicativo, endereo
eletrnico do desenvolvedor, o nome do desenvolvedor, o ano que o aplicativo foi
desenvolvido e o cone do aplicativo, assim como as opes 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).

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 variveis de deciso, neste caso existe as
variveis x1 e x2 na funo objetivo, no entanto se tenta colocar uma varivel x3
como uma restrio, mas como a varivel x3 no existe na funo objetivo o
aplicativo deve rejeitar a modelagem quando a opo executar for acionada de
qualquer maneira possvel, sendo pelo menu (Execuo) ou pela opo da barra, ou
at mesmo pela tecla de atalho (F5), neste caso ser emitido uma mensagem de
erro ao usurio que estra visvel na rea de texto inferior do aplicativo.
FIGURA 33 TELA DE ERRO CAUSADA POR UM ELEMENTO QUE NO FAZ
PARTE DO MODELO

FONTE: (O AUTOR).

68

Sabendo que o contedo de ajuda informa ao usurio a forma com que o


modelo matemtico deve ser escrito no editor do aplicativo, tambm deve ser levado
em considerao que o usurio pode se enganar e digitar seu modelo de forma no
conforme como descrito a ser seguido.
Neste caso se o usurio cometer um engano e colocar a funo objetivo na
posio inferior referente a quaisquer elementos da modelagem matemtica o
aplicativo vai emitir uma mensagem de erro representada na figura 34 avisando ao
usurio que existe um erro na funo objetivo.
FIGURA 34 - ORDEM ERRADA DOS ELEMENTOS DO MODELO

FONTE: (O AUTOR).

69

Se no momento da execuo do modelo matemtico escrito no editor de texto


do aplicativo o modelo matemtico apresentar algum caractere no conforme como
definido no contedo de ajuda do aplicativo, o aplicativo emitira uma mensagem de
erro, fornecendo a informao ao usurio sobre um erro de caractere, na figura 35
pode ser observada uma modelagem no conforme, pois existe um elemento que
no tem sentido com as conformidades do aplicativo que a ultima linha digitada
onde se tem x2.=7, os sinais suportados pelo editor so menor ou igual, igual e
maior ou igual (<=, = e >=).
FIGURA 35 TELA DE ERRO OCASIONADA POR CARACTERE INVLIDO

FONTE: (O AUTOR).

70

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


arquivo do editor que no uma PL, na figura 36 o usurio tenta executar um
arquivo contendo apenas os caracteres (adf) como esses caracteres no formam
uma modelagem matemtica que possibilite a resoluo com programao linear
dentro das exigncias do aplicativo, tal mensagem fornecida ao usurio.
FIGURA 36 TELA DE ERRO CAUSADA POR EXECUTAR UM ARQUIVO QUE
NO CONTM UMA PL.

FONTE: (O AUTOR).
No entanto, se usurio 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 usurio uma mensagem de erro exemplificada na
figura 37, informando o mesmo sobre a no seleo de uma das opes.

71

FIGURA 37 TELA DE ERRO AO EXECUTAR SEM SELECIONAR MAXIMIZAR OU


MINIMIZAR

FONTE: (O AUTOR).

72

7 CONSIDERAES FINAIS
Neste trabalho, o acadmico em questo abordou como tema principal a
Pesquisa Operacional, especificamente a Programao Linear, e durante a pesquisa
foi notado que algumas tecnologias poderiam ser utilizadas para o desenvolvimento
do sistema proposto e tambm foi percebido que seria possvel demonstrar com
clareza a importncia deste aplicativo e da programao linear para auxiliar na
resoluo de problemas de pesquisa operacional.
A pesquisa feita ao decorrer deste trabalho foi de grande importncia para
adquirir os conhecimentos necessrios que tornariam possvel o desenvolvimento do
aplicativo que foi proposto para este trabalho.
Como objetivos futuros pode se destacar a expanso do aplicativo para
suportar programao inteira e programao binaria entre outros, fornecendo ao
usurio um menu com opes para que o mesmo possa escolher o mtodo que
deseja aplicar ao modelo.

73

REFERNCIAS
ASCENCIO, Ana F. G.; CAMPOS, Edilene A. V. Fundamentos da Programao de
Computadores. 2. ed. So paulo: Pearson, 2007.
BARBOSA, Marcos A.; ZANARDI, Ricardo A. D. Iniciao Pesquisa Operacional
no Ambiente de Gesto. 1. ed. Curitiba: Ibprex, 2010.
BARBOZA, Angela O. Simulao e Tcnicas da Computao Evolucionria
Aplicadas a Problemas de Programao Linear Inteira Mista. Curitiba:
Repositrio Institucional da Universidade Tecnolgica Federal do Paran (RIUT),
2005.
BRESSAN, Glaucia M.; OLIVEIRA, Aurelio R. L. Reordenamento eficiente das
colunas bsicas na programao de lotes e cortes. Pesquisa Operacional, Rio de
Janeiro, v. XXIV, n. 2, Maio 2004. ISSN 0101-7438.
GONALVES, Edson. Dominando o Eclipse. So Paulo: Cincia Moderna 2006.
HILLIER, Frederick S.; LIEBERMAN, Geradl J. Introduo Pesquisa
Operacional. 8. ed. So Paulo: McGraw-Hill, 2006.
JONES, Meiler P. Fundamentos do Desenho Orientado a Objeto com UML.
Traduo: PASCHOA, Celso R. So Paulo: Makron Books, 2001.
JUNIOR, Peter J. Java Guia do Programador. So Paulo: Novatec, 2007.
SANTOS, Luiz C. D. M. M. A Importncia dos Software Livres na Engenharia de
Produo. Anais do Congresso Nacional Universidade, EAD e Software Livre, II, n.
2, 2011.
MUNHOZ, Jos R.; MORABITO, Reinaldo. Um modelo baseado em programao
linear e programao de metas para anlise de um sistema de produo e
distribuio de suco concentrado congelado de laranja. Gesto & Produo,
So Carlos, v. VIII, n. 2, Agosto 2001. ISSN 0104-530X.
NETO, Luiz L. S. Pesquisa Operacional no Ensino Mdio. Synergismus scyentifica
UTFPR, p. 42, 2009.
NOGAMI, Otto. O Uso Da Programao Linear Na Otimizao Da Produo: Um
Aplicativo Para A Microeconomia. Pensamento & Realidade, So Paulo, v. 15,
2004. ISSN 2237-4418.
PLANATSCHER , Hannes; SCHOBER, Michael. Scpsolver - An Easy To Use Java
Linear
Programming
Interface.
scpsolver,
2013.
Disponvel
em:
<http://scpsolver.org/>. Acesso em: 26 de abril de 2014.
TAHA, Hamdy A. Pesquisa Operacional: uma viso geral. 8. ed. So Paulo:
Pearson, 2008.

74

YOSHIDOME, Ewelton Y. C. et al. Uma Apoio Sistematizado Implementao 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. So Paulo: Pearson 2004.