SlideShare uma empresa Scribd logo
DESENVOLVIMENTO DE FERRAMENTA PARA AUTOMAÇÃO DE
TAREFAS
Everton Vieira Tavares
Orientador: Leandro Dionizio Ramos
noxevt@live.com
leandronizio@yahoo.com.br
Universidade do Estado de Minas Gerais – Departamento de Engenharia da Computação Av. Paraná,
nº 3001 – Jardim Belvedere – Divinópolis – MG – CEP: 35501-170
Resumo. O ambiente de trabalho atual tem exigido que as organizações, almejando ser cada vez mais
competitivas, busquem profissionais que executem multitarefas no menor tempo possível, e mais
ferramentas que os ajudem a melhorar a eficiência nas execuções das tarefas diárias. Porém, muitas
dessas tarefas se tornam repetitivas e demandam um tempo de trabalho crucial, impactando na
produtividade do profissional e na capacidade de absorver novas tarefas. Novas tarefas demandam
novas soluções, portanto, este artigo apresenta uma ferramenta desenvolvida na linguagem de
programação JAVA, utilizando recursos da biblioteca JavAuto e implementações da linguagem AutoIT,
que visa o aumento da produtividade através da automação de tarefas repetitivas, simulando ações do
usuário e utilizando o modelo evolucionário de desenvolvimento. Através da ferramenta o profissional
poderá identificar e automatizar atividades repetitivas, visando diminuir o tempo gasto nestas
atividades e reduzir as inconsistências causadas por erros humanos. Utilizar ferramentas que agilizam
os processos e otimizam o tempo é algo indispensável no mercado atual.
Palavras-chave: Automação de tarefas; JAVA; Produtividade; JavAuto
1 INTRODUÇÃO
No cenário de trabalho atual, um tema que ganhou grande relevância é a busca por maior
produtividade nas organizações, visando o debate e discussões sobre ferramentas para a
melhoria da produtividade. A escolha de uma ferramenta ou método de melhoria de
produtividade é variado, como lembra WALTON (1993 citado por SANTOS, E. C. M., 2012),
o resultado de vários métodos de melhoria da produtividade é misto, pois varia desde o mais
recomendado, até o mais limitado e convencional.
Rotineiramente, a produtividade está associada a dois objetivos: reduzir os gastos com
determinados processos ou tentar realizar maior número de processos sem aumentar os custos.
Atualmente, o ambiente de trabalho é cada vez mais dinâmico e caracterizado pela velocidade
em que os negócios acontecem, sendo assim, utilizar ferramentas que agilizem os processos e
otimizam o tempo se tornou indispensável. Segundo SANTOS (SANTOS, R. A. S., 2011, p.1),
“as organizações precisam automatizar seus processos e reduzir a complexidade. Isto pode ser
feito automatizando mais tarefas, gerenciando melhor o uso dos sistemas de tecnologia da
Informação, aplicações e redes dentro da organização”.
Utilizar uma ferramenta de automação, propicia alcançar os dois objetivos associados à
produtividade, que, além de realizar as tarefas rotineiras com menor esforço e aproveitar
recursos e tempo de forma inteligente, também eliminam os erros humanos e diminuem o tempo
de execução das tarefas que possibilitam automação.
Segundo um artigo divulgado por uma empresa de recrutamento online, as organizações,
buscando ser cada vez mais competitivas, exigem que os profissionais cumpram metas no
menor tempo possível. As equipes reduzidas, fazem com que um grande volume de tarefas seja
atribuído a um número reduzido de colaboradores (CATHO, 2011).
Essa estrutura causa uma jornada de trabalho ou uma série de atividades muito maior do
que a capacidade do profissional. Torna-se parte do trabalho identificar e automatizar atividades
repetitivas, reduzindo de forma significativa os custos operacionais, ao mesmo tempo em que
aumentam a qualidade, a competitividade, a produtividade e o lucro.
O presente artigo apresenta o desenvolvimento de um software na linguagem Java que
automatiza tarefas repetitivas do usuário, como por exemplo, a criação de pastas eletrônicas em
um sistema GED (Gestão Eletrônica de Documentos), que visa diminuir o tempo gasto nestas
atividades e reduzir as inconsistências causadas por erros humanos.
A ferramenta terá foco no sistema operacional Windows, por ocupar uma parcela de
91,07% das estações de trabalho adquiridas em 2014, conforme demonstrado na FIGURA 1.
Figura 1 - Uso dos S.O. nas estações de trabalho
Fonte: NETMARKETSHARE.COM, 2015
As demais plataformas poderão ser abordadas em implementações futuras, pois segundo
dados da plataforma de pesquisa sobre participação de mercado, NETMARKETSHARE, as
plataformas LINUX e MAC somam 8,92% das estações de trabalho comercializadas em 2014,
o que justifica o foco inicial no sistema Windows, por representar uma parcela maior do
mercado.
2 TRABALHOS CORRELATOS
Este capítulo apresenta trabalhos relacionados com a ferramenta desenvolvida. São
comparados recursos oferecidos e implementação.
2.1 WINPARROT
WinParrot é uma ferramenta gratuita que pode gravar seus cliques do mouse e teclas
pressionadas, e reproduzi-las mais tarde, o que permite automatizar muitas tarefas comuns de
PC. Está disponível no site oficial do desenvolvedor (http://www.winparrot.com/indexPt.html).
Utilizando o WinParrot, é possível abrir o browser e realizar alguma ação específica,
como acessar o e-mail automaticamente. Também é possível utilizar o WinParrot em uma
demonstração, inserindo números automaticamente em uma planilha e observar o resultado em
um gráfico.
Pode haver complicações, particularmente com cliques do mouse, um problema
recorrente em gravadores de macros. Um exemplo é utilizar a calculadora, se a janela “Calc” é
aberta em uma posição diferente de quando a macro foi gravada, cliques serão enviados para
uma posição diferente e a sequência irá falhar.
2.2 AUTOHOTKEY
AutoHotKey é um software gratuito, criado por Chris Mallet (AUTOHOTKEY, 2015),
capaz de criar e usar atalhos pelo teclado e clique do mouse. É possível escrever macros
digitando ou usando um gravador de macros, criando combinações para ativar atalhos. Em sua
instalação, são incluídas ferramentas adicionais que permitem criar abreviações, como por
exemplo, digitar “BR” e automaticamente o programa irá substituir o texto por “Brasil”.
Através do programa, é possível configurar atalhos para aumentar ou diminuir o volume,
iniciar ou encerrar programas e aplicações, receber e alterar o conteúdo do ClipBoard, entre
outras rotinas.
No modo “escrever macros”, o usuário deve conhecer o básico de programação, pois,
apesar de possuir um módulo de referência completo, o usuário tem dificuldade em montar um
fluxo de trabalho com facilidade. No modo “gravação de macro”, o usuário não tem acesso a
sequência de ações que o programa irá utilizar. Também pode haver problemas com cliques do
mouse quando uma janela não abrir na mesma posição de quando a macro foi gravada. Está
disponível no site oficial do projeto (https://autohotkey.com/).
2.3 COMPARATIVO
Utilizando o módulo de gravação de macros das ferramentas citadas acima, o usuário não
acompanha o passo-a-passo do desenvolvimento do script, impedindo que sejam alterados os
tempos de cliques e de espera para a inicialização de um programa, ou a abertura completa de
uma página, o que pode interromper a execução correta da sequência. Utilizando o programa
AutoHotKey, o usuário deve possuir conhecimentos de programação, para obter e visualizar
uma sequência personalizada. Os problemas descritos, não estão presentes na ferramenta
apresentada neste artigo, pois o usuário tem acesso a sequência de ações e pode alterar cada
ação facilmente, assim como definir os tempos de espera para garantir a execução correta da
ação.
3 MODELO DE DESENVOLVIMENTO
A engenharia de software é uma disciplina de engenharia relacionada com todos os
aspectos de produção de software, desde os estágios iniciais de especificação do sistema até a
sua manutenção, ou seja, mesmo depois que este entrar em operação (SOMMERVILLE, 2008).
A engenharia de software atua em um papel primordial dentro dos ciclos de vida do projeto e
do produto de software, que é proporcionar uma maior qualidade e produtividade ao software,
baseando-se nos estudos e padrões de engenharia mais recomendados pela área de
desenvolvimento de software.
Para atender os objetivos descritos, esse projeto utiliza o método de Desenvolvimento
Exploratório descrito por SOMMERVILLE (2008 p.45-46), que é um tipo de Modelo
Evolucionário de desenvolvimento de software, e tem como base desenvolver um sistema
apresentando as versões para o usuário, que, por sua vez, fará comentários para o
aprimoramento e modificações, até que os requisitos sejam cumpridos.
A FIGURA 2 ilustra o processo do modelo evolucionário. Neste processo, inicialmente
temos uma descrição geral da ferramenta em desenvolvimento. A partir da descrição geral é
desenvolvida uma versão inicial do software. Em seguida, essa versão é submetida a avaliação
do usuário. Durante o desenvolvimento da ferramenta - a partir da avaliação do usuário -, são
geradas versões que vão evoluindo durante o processo, até alcançar os objetivos desejados.
Figura 2 - Modelo de Desenvolvimento Evolucionário
Fonte: AUTOR
Este modelo é utilizado principalmente em softwares onde é difícil realizar
especificações, softwares de pequeno a médio porte, e em pesquisas para desenvolvimento de
sistemas de Inteligência Artificial.
As vantagens deste modelo de desenvolvimento são: desenvolvimento rápido do sistema,
o envolvimento do usuário durante o desenvolvimento do projeto, e a facilidade de adaptações
nos requisitos. Tem como desvantagem: a inviabilidade de manter documentações para cada
versão, e a tendência do desenvolvedor de corromper a estrutura do software para atender à
avalição do usuário.
3.1 CICLO DE DESENVOLVIMENTO
O ciclo de desenvolvimento compreende um conjunto de atividades que vão desde a
descrição inicial, até a finalização do projeto. Inspirado no modelo proposto por FILHO (2011,
p.48-49), as atividades que serão necessárias para desenvolver a ferramenta serão:
• Levantamento de requisitos – É a primeira atividade do ciclo de desenvolvimento do
software, onde é listada as funcionalidades que deverão ser desenvolvidas para alcançar os
objetivos.
• Análise de Requisitos – Após o levantamento de requisitos, é feita uma análise para checar
se todos requisitos foram identificados, se são consistentes e se não existem ambiguidades.
• Revisão do Projeto – A partir da lista de requisitos, se especifica os tipos de dados que
serão utilizados, além de definir os mecanismos de acesso a esses dados, e como serão
manipulados.
• Implementação – Observar o projeto da ferramenta, para que código seja escrito,
implementando as funcionalidades levantadas na primeira etapa do ciclo, e na avaliação do
usuário.
• Testes – Checar se a ferramenta funciona adequadamente ou não. Se encontrada alguma
inconsistência, ela deverá ser corrigida antes de se disponibilizar a próxima versão para teste
do usuário.
Devido ao modelo de desenvolvimento escolhido para o software, esse ciclo deverá ser
repetido a cada versão disponibilizada para teste do usuário. As observações feitas na avaliação
do usuário serão incluídas no levantamento e análise dos requisitos.
3.2 FERRAMENTAS
Para a realização deste projeto, foi preparado um ambiente com os programas e
ferramentas necessárias para o desenvolvimento do software. Não há aqui a intenção de mostrar
a instalação de cada ferramenta, e sim uma breve descrição:
• AutoIt - AutoIt v3 é uma linguagem de script BASIC-like freeware, projetado para
automatizar a interface gráfica do Windows e scripting geral, a fim de automatizar tarefas
de modo que não são possíveis ou confiáveis com outras linguagens (FIESNER, 2007).
• JAVA – A linguagem JAVA “seduziu” os programadores com sua sintaxe amigável,
recursos orientados a objetos, gerenciamento de memória, e a promessa de portabilidade. O
código fonte é escrito e compilado utilizando o compilador JAVAC, e executado pela
máquina virtual JAVA (SIERRA; BATES, 2005, p. 1-5). Uma das vantagens de se utilizar
o JAVA, é que além de ser uma linguagem, é uma plataforma de desenvolvimento. Com ele
é possível desenvolver aplicações para desktop, celular, cartão, web, televisão digital, etc.
Existem várias comunidades voltadas para o JAVA, e graças a elas, é possível obter
materiais para estudo de maneira fácil, permitindo a troca de experiência com pessoas que
já atuam na área a mais tempo. Quando se compila um arquivo em JAVA, é possível
executar o programa em qualquer sistema operacional compatível.
• JavAuto - JavAuto é uma linguagem de automação, único devido à sua capacidade de
executar cliques do mouse, simular entrada do teclado, e realizar pesquisas de pixel
(JAVAUTO, 2015). Sua biblioteca implementa métodos que facilitam e aceleram o
desenvolvimento de qualquer aplicação, pois o desenvolvedor não precisa se preocupar em
desenvolver funções básicas da linguagem.
• NetBeans - é um projeto open-source, dedicado ao fornecimento de produtos de
desenvolvimento de software, que abordam as necessidades dos desenvolvedores, dos
usuários e das empresas para que possam desenvolver produtos de forma rápida, eficiente e
fácil, aproveitando os pontos fortes da plataforma Java (NETBEANS, 2015).
Todas as ferramentas descritas são gratuitas e podem ser encontradas na internet, assim
como informações relevantes sobre sua utilização e também discussões sobre diferentes modos
de aplicações e implementações possíveis utilizando-as.
3.3 REQUISITOS DA FERRAMENTA
O objetivo geral do projeto é desenvolver uma ferramenta de automação de fácil interação
e que simule as ações dos usuários, com o intuito de melhorar a eficiência na execução das
tarefas. Desde modo, a ferramenta deve atender aos seguintes requisitos:
• A ferramenta deve possuir funções que simulam cliques do mouse, entradas através do
teclado, ativar uma janela, e espera por determinado tempo.
• A ferramenta deve possuir uma função que permita ao usuário obter o título de uma janela,
para que a função que ativa uma janela seja executada com sucesso.
• A ferramenta deve exibir o script, que será gerado para execução automatizada da tarefa.
• O usuário poderá abrir, salvar e editar o script gerado.
• Uma interface sequencial e autoexplicativa, com o objetivo de facilitar o uso por qualquer
usuário.
Com o fim do desenvolvimento, será entregue ao usuário uma versão da ferramenta que
forneça as funcionalidades previstas nos requisitos.
3.4 DIAGRAMA DE COMPONENTES
No UML, um componente é uma parte encapsulada, reutilizável e substituível do
software. Bons candidatos para componente são itens que executam uma funcionalidade
essencial, e serão usados com frequência, em todo sistema (HAMILTON; MILES, 2006). Um
diagrama representa graficamente a estrutura projetada, onde os componentes constroem entre
si relações de dependência. A FIGURA 3 ilustra os componentes necessários para o
funcionamento da ferramenta proposta.
Figura 3 – Diagrama básico de componentes
Fonte: AUTOR
3.5 DIAGRAMA DE CASO DE USO
Um caso de uso descreve a sequência de eventos de um ator que usa um sistema para
completar uma ação, onde o ator é o usuário que utiliza o sistema ou algum componente que
executa uma ação. Caso de uso não são especificações de requisitos ou especificações
funcionais, mas ilustram e implicam requisitos na história que eles contam. Um diagrama de
caso de uso ilustra um conjunto de casos de uso para um sistema - os atores -, e a relação entre
os atores e os casos de uso (LARMAN, 2000 citado por SANTOS, R. A. S., 2011).
A FIGURA 4 ilustra as ações do ator usuário para criar um script e do ator AutoTask
que representa a ferramenta que irá executar a sequência construída:
Figura 4 – Diagrama de caso de uso
Fonte: AUTOR
4 RESULTADOS E DISCUSSÕES
Este espaço tem o objetivo de apresentar os resultados obtidos com a execução deste
projeto. Pretende-se examinar o produto final, verificando quais benefícios foram realmente
úteis para os usuários. O uso dos conceitos até aqui abordados, devem convergir para a
resolução do problema de produtividade no ambiente empresarial.
O resultado principal é a ferramenta AutoTask. Esta ferramenta deverá proporcionar ao
usuário, um ganho de produtividade na execução de tarefas que podem ser automatizadas.
4.1 IMPLANTAÇÃO
A ferramenta foi implantada em um escritório de projetos na área administrativa. Foram
treinados três usuários, com diferentes níveis de conhecimento em informática, para validar o
uso de forma heterogênea.
Foram implantadas as tarefas de automação, para a criação de pastas eletrônicas no
sistema de gerenciamento eletrônico de documentos da empresa, e a edição de um campo no
sistema de planejamento dos recursos, que informa onde estão armazenados os documentos
referentes à obra.
Para a criação de uma pasta eletrônica, os dados devem ser lidos em uma planilha e
posteriormente preenchidos no sistema, que é uma interface WEB para a plataforma de
gerenciamento de documentos GEDOC, da empresa SISGRAPH. A SISGRAPH é uma empresa
sediada em São Paulo que oferece soluções completas para sistemas de informações
geográficas, engenharia & processos, gerenciamento de informações, segurança pública e
manufatura (SISGRAPH, 2015). No sistema são armazenados documentos como projeto,
licenças ambientais, carta acordo e outros. As figuras abaixo demostram os passos para criação
da pasta: A FIGURA 5 ilustra o relatório gerado para criação de pastas. Na planilha exportada
estão as informações para a criação da pasta:
Figura 5 – Informações para a criação da pasta eletrônica
Fonte: AUTOR
A FIGURA 6 demonstra o processo para criação de pastas no sistema de gerenciamento
eletrônico de documentos, onde o usuário deve preencher os dados da pasta eletrônica:
Figura 6 – Interface para criação de pastas eletrônicas
Fonte: AUTOR
Após preencher os dados de acordo com a planilha, o usuário confirma a operação. Confirmada
a criação, a pasta é retirada da caixa de entrada pessoal do usuário através da operação Remover
Workflow, como demonstrado na FIGURA 7:
Fonte: AUTOR
Figura 7 – Sequência para finalização da criação
Cumpridas as etapas acima, a pasta estará criada e disponível para uso.
Os documentos referentes as obras executadas, são armazenadas nas pastas eletrônicas
e sua localização é informada no campo “Arquivo Morto” do sistema de planejamento dos
recursos utilizado pela empresa. A edição do campo, acontece a partir da lista de pastas criadas,
utilizando o número da nota de serviço referente a cada obra, a sequência de ações é
demonstrada abaixo:
O usuário entra na nota de serviço através da função “Modificar nota serviço”, como
demonstrado na FIGURA 8:
Figura 8 – Demonstrativo de como entrar na nota de serviço
Fonte: AUTOR
Já na tela para edição da nota de serviço, o usuário deve selecionar a aba “Dados
Complementares” e editar o campo “Arquivo morto”, informando a localização dos documentos
da obra. Essa sequência é demonstrada na FIGURA 9:
Figura 9 – Edição do campo “Arquivo morto”
Fonte: AUTOR
As duas tarefas demonstradas são executadas diariamente, facilitando assim a coleta e
comparação de resultados.
4.2 INTERFACE DA FERRAMENTA
Durante o levantamento de requisitos, foi idealizada uma interface de fácil interpretação.
O usuário deve atingir seu objetivo sem a necessidade de um treinamento complexo, facilitando
a implantação para vários usuários da empresa. Dessa forma, o ganho em produtividade poderá
ser difundido em outras áreas da empresa.
A FIGURA 10 ilustra a interface da ferramenta, onde o usuário encontra todas as funções
definidas no levantamento de requisitos. É possível também visualizar, editar, executar, salvar
ou descartar o script gerado.
Figura 10 – Tela Principal
Fonte: AUTOR
Para criar a ação de clique do mouse, o usuário deve informar a posição do mouse e qual
botão será utilizado no clique, como ilustrado na FIGURA 11.
Figura 11 – Configurações da ação do Mouse
Fonte: AUTOR
As ações que simulam o teclado também deverão ser informadas pelo usuário. Ele
poderá enviar um texto da área de transferência ou um texto pré-definido, como demonstrado
na FIGURA 12.
Figura 12 – Configurações da ação do Teclado
Fonte: AUTOR
Os tempos de espera deverão ser informados em milissegundos, como ilustrado na
FIGURA 13.
Figura 13 – Configurações do Tempo de Espera
Fonte: AUTOR
Para ativar uma janela, o usuário informa o título da janela, como demonstrado na
FIGURA 14.
Figura 14 – Configurações da Função de Ativar Janela
Fonte: AUTOR
4.3 IMPACTO DA UTILIZAÇÃO DA FERRAMENTA
A quantidade e complexidade de tarefas realizadas por um usuário pode aumentar de
acordo com o crescimento da empresa, impactando diretamente em sua produtividade.
Atividades comuns, que podem ser automatizadas, são o foco da ferramenta, pois através
da automação, o usuário pode executar outras tarefas que requerem a intervenção humana,
enquanto a ferramenta trabalha nas atividades automatizadas.
Quando se trata de uma pequena empresa, o tempo gasto para execução de uma única
tarefa, não chega a representar um ganho de produtividade. Em casos de empresas maiores, o
tempo dispensado para executar esta mesma tarefa poderá ser alto, assim, haverá um ganho de
produtividade, ou o redirecionamento de recursos humanos.
A ferramenta AutoTask atua especificamente neste problema, propondo o uso de scripts
automatizados para realização das tarefas. Será apenas necessário, criar um script que realize
determinada tarefa e agendá-lo para a execução.
Com o uso do AutoTask, o resultado esperado é um menor esforço para a realização de
tarefas, porém, pode ser visto também, como uma ferramenta de automação de rotinas diárias,
sem ganho efetivo de produtividade, mas executadas com maior eficiência.
4.4 OBJETIVOS ALCANÇADOS
O desenvolvimento utilizando a metodologia proposta, prevê como resultado um
potencial produto ao final de cada ciclo. O AutoTask chega a sua primeira versão, atendendo
aos objetivos relacionados nos requisitos da ferramenta.
O AutoTask foi desenvolvido utilizando a linguagem JAVA, a linguagem AutoIT e a
biblioteca JavAuto, que se mostraram aptas para a resolução do problema proposto. O JAVA,
por ser uma tecnologia portável, permitirá que o AutoTask seja portado para outros sistemas
operacionais sem muito esforço.
Através da ferramenta, o tempo gasto para execução das tarefas é reduzido, além de
proporcionar mais tempo para o usuário executar outras funções, o que traz um impacto positivo
para a produtividade.
Na QUADRO 1, é apresentado os dados coletados durante os testes da aplicação, o que
ilustra sua usabilidade e eficiência.
Quadro 1 – Resultados Obtidos
Fonte: AUTOR
Com a realização deste projeto, os objetivos traçados inicialmente foram alcançados, e a
ferramenta ainda poderá ser aprimorada, com a possibilidade de agregar mais funcionalidades
e recursos que forneçam ao usuário uma ferramenta completa de automação.
5 CONCLUSÃO
Após a realização deste projeto, foi possível observar que os requisitos propostos e
atendidos, são um marco inicial para a construção de um produto ainda mais elaborado. A
ferramenta tem potencial para trazer melhores resultados para usuários e empresas.
O objetivo deste projeto foi desenvolver uma ferramenta eficiente, que auxilie usuários
e empresas a alcançarem as metas relacionadas à produtividade e ao ganho de eficiência. A
cada dia, novas tarefas surgem no ambiente corporativo, e com o uso da tecnologia, essas
tarefas vão encontrando novas soluções.
Através da junção da linguagem JAVA, da linguagem AutoIT e da utilização da biblioteca
JavAuto, foi possível concretizar uma ferramenta de auxílio para os usuários. De forma simples
e sequencial, o usuário consegue criar scripts para execução de tarefas e com isso, obter ganhos
de eficiência.
Outra relevante contribuição está relacionada à metodologia utilizada. O método
evolucionário de desenvolvimento cria uma aproximação do desenvolvedor com o usuário final,
tornando a ferramenta relevante para o público-alvo. O foco no resultado reflete positivamente
na agilidade e na qualidade da aplicação desenvolvida.
6 TRABALHOS FUTUROS
Após o desenvolvimento da ferramenta proposta, algumas sugestões dadas pelos usuários
selecionados e observações feitas pelo desenvolvedor, podem ser futuramente implementadas à
ferramenta, como permitir o uso de variáveis, permitindo que valores sejam atribuídos e
utilizados durante a execução do script, estruturas condicionais e de repetição, possibilitando
que o script faça comparações e tome decisões durante a execução, ampliando as possibilidades
oferecidas ao usuário, com o intuito de manter o desenvolvimento da aplicação e aprimorar suas
funções.
DOWNLOAD – AutoTask
<http://noxinc.com.br/projetos%20open/AutoTask_1/AutoTaks.zip>
REFERÊNCIAS
AUTOHOTKEY. Site Oficial. Disponível em:< http://autohotkey.com/docs/Tutorial.htm >.
Acesso em: 26 out. 2015.
CATHO. Trabalho sob pressão: Como lidar. São Paulo, 2011. Disponível em
<http://www.catho.com.br/carreira-sucesso/noticias/trabalho-sob-pressao-como-lidar>.
Acesso em 25 mai. 2015.
FIESNER, A. AutoIt v3: Your Quick Guide. St. Louis: O’Reilly Media, 2007.
FILHO, A.M.S. Desenvolvimento de Software requer Processo e Gestão. Revista Espaço
Acadêmico, Maringá, v.123, p.46-57, ago. 2011.
HAMILTON, K; MILES, R. Learning UML 2.0, 1ª edição. USA: O’Reilly, 2006.
JAVAUTO. Getting-Started. Disponível em:< http://javauto.org/docs/getting-started.html>
Acesso em: 26 mai. 2015.
NETBEANS. About Us. Disponível em:< https://netbeans.org/about/index.html>. Acesso em:
26 mai. 2015.
NET MARKETSHARE. Site Oficial. Disponível em:< http://netmarketshare.com>. Acesso
em: 26 mai. 2015.
SANTOS, E. C. M. Gestão da Produtividade Administrativa. Caxias do Sul: Faculdade
Anglo Americano de Caxias do Sul; 2012. Disponível em:
<http://pt.slideshare.net/EvilasioSilva/evilasio-cesar-gesto-da-produtividade-
administrativa10424638>. Acesso em 29 abr. 2015.
SANTOS, R. A. S. PyTM – Python Task Manager. Desenvolvimento de um software para
automação de tarefas utilizando Python. Lavras: UNIVERSIDADE FEDERAL DE
LAVRAS, 2011. Disponível em: <http://www.ginux.ufla.br/files/mono-RadsonSantos.pdf >.
Acesso em 28 abr. 2015.
SIERRA, K.; BATES, B. Use a Cabeça Java, 2ª edição. Rio de Janeiro: AltaBooks, 2005.
SITE OFICIAL WINPARROT. Disponível em: < http://www.winparrot.com >. Acesso em 15
out. 2015.
SISGRAPH. A SISGRAPH. Disponível em:< http://www.sisgraph.com.br/about/ >. Acesso
em: 26 out. 2015.
SOMMERVILLE, I. Engenharia de software, 8ª edição. São Paulo: Pearson, 2007.
WINPARROT. Site Oficial. Disponível em:< http://www.winparrot.com/indexPt.html >.
Acesso em: 26 out. 2015.

Mais conteúdo relacionado

Mais procurados

Atividade 10
Atividade 10Atividade 10
Atividade 10
Tony Hara
 
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASLIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
Os Fantasmas !
 
Es06 teste de software
Es06   teste de softwareEs06   teste de software
Es06 teste de software
Carlos Antonio Castro Oliveira
 
Es 09
Es 09Es 09
Artigo usabilidade
Artigo   usabilidadeArtigo   usabilidade
Artigo usabilidade
Junior Marcos Alves
 
Desenvolvimento de softwares/sistemas
Desenvolvimento de softwares/sistemasDesenvolvimento de softwares/sistemas
Desenvolvimento de softwares/sistemas
Geraldo Munguambe
 
Visual Basic Básico
Visual Basic BásicoVisual Basic Básico
Visual Basic Básico
Clico - Ana Isabel Rodrigues
 
Monografia - Ciência da Computação - UFCG
Monografia - Ciência da Computação - UFCGMonografia - Ciência da Computação - UFCG
Monografia - Ciência da Computação - UFCG
Dalton Valadares
 
Análise Heuristica
Análise HeuristicaAnálise Heuristica
Análise Heuristica
guestc08a52
 
Desenvolvimento de software pesquisa mdi e sdi
Desenvolvimento de software pesquisa mdi e sdiDesenvolvimento de software pesquisa mdi e sdi
Desenvolvimento de software pesquisa mdi e sdi
Wesley Germano Otávio
 
Powerpoint basico 2016
Powerpoint basico 2016Powerpoint basico 2016
Powerpoint basico 2016
Clico - Ana Isabel Rodrigues
 
Captulo 8 prototipacao
Captulo 8 prototipacaoCaptulo 8 prototipacao
Captulo 8 prototipacao
lua alves
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISLIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
Os Fantasmas !
 
DevQA: UI Testing , como fazer?
DevQA: UI Testing , como fazer?DevQA: UI Testing , como fazer?
DevQA: UI Testing , como fazer?
Kamilla Queiroz Xavier
 
Prototipagem
PrototipagemPrototipagem
Prototipagem
Know Solutions
 
RAD - Métodos ágeis
RAD - Métodos ágeisRAD - Métodos ágeis
RAD - Métodos ágeis
Claudio Eckert
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Ryan Padilha
 
(Sistema de gerenciamento de conteúdo para ambiente web)
(Sistema de gerenciamento de conteúdo para ambiente web)(Sistema de gerenciamento de conteúdo para ambiente web)
(Sistema de gerenciamento de conteúdo para ambiente web)
David Henoch
 
Sistemas de Gerenciamento de Conteúdo
Sistemas de Gerenciamento de ConteúdoSistemas de Gerenciamento de Conteúdo
Sistemas de Gerenciamento de Conteúdo
Tiago Celestino
 
Test manager
Test managerTest manager
Test manager
Orlando Pereira Jr.
 

Mais procurados (20)

Atividade 10
Atividade 10Atividade 10
Atividade 10
 
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASLIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
 
Es06 teste de software
Es06   teste de softwareEs06   teste de software
Es06 teste de software
 
Es 09
Es 09Es 09
Es 09
 
Artigo usabilidade
Artigo   usabilidadeArtigo   usabilidade
Artigo usabilidade
 
Desenvolvimento de softwares/sistemas
Desenvolvimento de softwares/sistemasDesenvolvimento de softwares/sistemas
Desenvolvimento de softwares/sistemas
 
Visual Basic Básico
Visual Basic BásicoVisual Basic Básico
Visual Basic Básico
 
Monografia - Ciência da Computação - UFCG
Monografia - Ciência da Computação - UFCGMonografia - Ciência da Computação - UFCG
Monografia - Ciência da Computação - UFCG
 
Análise Heuristica
Análise HeuristicaAnálise Heuristica
Análise Heuristica
 
Desenvolvimento de software pesquisa mdi e sdi
Desenvolvimento de software pesquisa mdi e sdiDesenvolvimento de software pesquisa mdi e sdi
Desenvolvimento de software pesquisa mdi e sdi
 
Powerpoint basico 2016
Powerpoint basico 2016Powerpoint basico 2016
Powerpoint basico 2016
 
Captulo 8 prototipacao
Captulo 8 prototipacaoCaptulo 8 prototipacao
Captulo 8 prototipacao
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISLIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
 
DevQA: UI Testing , como fazer?
DevQA: UI Testing , como fazer?DevQA: UI Testing , como fazer?
DevQA: UI Testing , como fazer?
 
Prototipagem
PrototipagemPrototipagem
Prototipagem
 
RAD - Métodos ágeis
RAD - Métodos ágeisRAD - Métodos ágeis
RAD - Métodos ágeis
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
 
(Sistema de gerenciamento de conteúdo para ambiente web)
(Sistema de gerenciamento de conteúdo para ambiente web)(Sistema de gerenciamento de conteúdo para ambiente web)
(Sistema de gerenciamento de conteúdo para ambiente web)
 
Sistemas de Gerenciamento de Conteúdo
Sistemas de Gerenciamento de ConteúdoSistemas de Gerenciamento de Conteúdo
Sistemas de Gerenciamento de Conteúdo
 
Test manager
Test managerTest manager
Test manager
 

Semelhante a Desenvolvimento de ferramenta para automação de tarefas

Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Fernando Palma
 
14987568107 coisas-software-gestao-projetos
14987568107 coisas-software-gestao-projetos14987568107 coisas-software-gestao-projetos
14987568107 coisas-software-gestao-projetos
Magnolia Barbosa
 
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
Anderson Kanegae Soares Rocha
 
Processos de software
Processos de softwareProcessos de software
Processos de software
Computação Depressão
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
elliando dias
 
Análise da Influência de Uso de Software para Automatização do Scrum
Análise da Influência de Uso de Software para Automatização do ScrumAnálise da Influência de Uso de Software para Automatização do Scrum
Análise da Influência de Uso de Software para Automatização do Scrum
Fabio Miranda
 
Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...
Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...
Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...
Wildtech
 
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MININGGESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
Marcos Lottermann
 
TechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test ManagerTechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test Manager
Alan Carlos
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
ECRAYON Tecnologia Criativa
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
Kelvin Wesley
 
RAD - Métodos ágeis
RAD - Métodos ágeisRAD - Métodos ágeis
RAD - Métodos ágeis
Claudio Eckert
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
Carlos Henrique Martins da Silva
 
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdfO_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
Athena542429
 
Analise de Requisitos de Software
Analise de Requisitos de SoftwareAnalise de Requisitos de Software
Analise de Requisitos de Software
Robson Silva Espig
 
Programacao Extrema
Programacao ExtremaProgramacao Extrema
Programacao Extrema
Robson Silva Espig
 
Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?
Priscilla Aguiar
 
Aplicacao fpa pontos da função
Aplicacao fpa pontos da funçãoAplicacao fpa pontos da função
Aplicacao fpa pontos da função
Wisthon Douglas
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
Roni Reis
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Cris Fidelix
 

Semelhante a Desenvolvimento de ferramenta para automação de tarefas (20)

Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
 
14987568107 coisas-software-gestao-projetos
14987568107 coisas-software-gestao-projetos14987568107 coisas-software-gestao-projetos
14987568107 coisas-software-gestao-projetos
 
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
 
Processos de software
Processos de softwareProcessos de software
Processos de software
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Análise da Influência de Uso de Software para Automatização do Scrum
Análise da Influência de Uso de Software para Automatização do ScrumAnálise da Influência de Uso de Software para Automatização do Scrum
Análise da Influência de Uso de Software para Automatização do Scrum
 
Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...
Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...
Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...
 
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MININGGESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
 
TechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test ManagerTechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test Manager
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
 
RAD - Métodos ágeis
RAD - Métodos ágeisRAD - Métodos ágeis
RAD - Métodos ágeis
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdfO_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
 
Analise de Requisitos de Software
Analise de Requisitos de SoftwareAnalise de Requisitos de Software
Analise de Requisitos de Software
 
Programacao Extrema
Programacao ExtremaProgramacao Extrema
Programacao Extrema
 
Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?
 
Aplicacao fpa pontos da função
Aplicacao fpa pontos da funçãoAplicacao fpa pontos da função
Aplicacao fpa pontos da função
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
 

Último

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 

Último (6)

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 

Desenvolvimento de ferramenta para automação de tarefas

  • 1. DESENVOLVIMENTO DE FERRAMENTA PARA AUTOMAÇÃO DE TAREFAS Everton Vieira Tavares Orientador: Leandro Dionizio Ramos noxevt@live.com leandronizio@yahoo.com.br Universidade do Estado de Minas Gerais – Departamento de Engenharia da Computação Av. Paraná, nº 3001 – Jardim Belvedere – Divinópolis – MG – CEP: 35501-170 Resumo. O ambiente de trabalho atual tem exigido que as organizações, almejando ser cada vez mais competitivas, busquem profissionais que executem multitarefas no menor tempo possível, e mais ferramentas que os ajudem a melhorar a eficiência nas execuções das tarefas diárias. Porém, muitas dessas tarefas se tornam repetitivas e demandam um tempo de trabalho crucial, impactando na produtividade do profissional e na capacidade de absorver novas tarefas. Novas tarefas demandam novas soluções, portanto, este artigo apresenta uma ferramenta desenvolvida na linguagem de programação JAVA, utilizando recursos da biblioteca JavAuto e implementações da linguagem AutoIT, que visa o aumento da produtividade através da automação de tarefas repetitivas, simulando ações do usuário e utilizando o modelo evolucionário de desenvolvimento. Através da ferramenta o profissional poderá identificar e automatizar atividades repetitivas, visando diminuir o tempo gasto nestas atividades e reduzir as inconsistências causadas por erros humanos. Utilizar ferramentas que agilizam os processos e otimizam o tempo é algo indispensável no mercado atual. Palavras-chave: Automação de tarefas; JAVA; Produtividade; JavAuto 1 INTRODUÇÃO No cenário de trabalho atual, um tema que ganhou grande relevância é a busca por maior produtividade nas organizações, visando o debate e discussões sobre ferramentas para a melhoria da produtividade. A escolha de uma ferramenta ou método de melhoria de produtividade é variado, como lembra WALTON (1993 citado por SANTOS, E. C. M., 2012), o resultado de vários métodos de melhoria da produtividade é misto, pois varia desde o mais recomendado, até o mais limitado e convencional. Rotineiramente, a produtividade está associada a dois objetivos: reduzir os gastos com determinados processos ou tentar realizar maior número de processos sem aumentar os custos. Atualmente, o ambiente de trabalho é cada vez mais dinâmico e caracterizado pela velocidade em que os negócios acontecem, sendo assim, utilizar ferramentas que agilizem os processos e otimizam o tempo se tornou indispensável. Segundo SANTOS (SANTOS, R. A. S., 2011, p.1), “as organizações precisam automatizar seus processos e reduzir a complexidade. Isto pode ser feito automatizando mais tarefas, gerenciando melhor o uso dos sistemas de tecnologia da Informação, aplicações e redes dentro da organização”. Utilizar uma ferramenta de automação, propicia alcançar os dois objetivos associados à produtividade, que, além de realizar as tarefas rotineiras com menor esforço e aproveitar
  • 2. recursos e tempo de forma inteligente, também eliminam os erros humanos e diminuem o tempo de execução das tarefas que possibilitam automação. Segundo um artigo divulgado por uma empresa de recrutamento online, as organizações, buscando ser cada vez mais competitivas, exigem que os profissionais cumpram metas no menor tempo possível. As equipes reduzidas, fazem com que um grande volume de tarefas seja atribuído a um número reduzido de colaboradores (CATHO, 2011). Essa estrutura causa uma jornada de trabalho ou uma série de atividades muito maior do que a capacidade do profissional. Torna-se parte do trabalho identificar e automatizar atividades repetitivas, reduzindo de forma significativa os custos operacionais, ao mesmo tempo em que aumentam a qualidade, a competitividade, a produtividade e o lucro. O presente artigo apresenta o desenvolvimento de um software na linguagem Java que automatiza tarefas repetitivas do usuário, como por exemplo, a criação de pastas eletrônicas em um sistema GED (Gestão Eletrônica de Documentos), que visa diminuir o tempo gasto nestas atividades e reduzir as inconsistências causadas por erros humanos. A ferramenta terá foco no sistema operacional Windows, por ocupar uma parcela de 91,07% das estações de trabalho adquiridas em 2014, conforme demonstrado na FIGURA 1. Figura 1 - Uso dos S.O. nas estações de trabalho Fonte: NETMARKETSHARE.COM, 2015 As demais plataformas poderão ser abordadas em implementações futuras, pois segundo dados da plataforma de pesquisa sobre participação de mercado, NETMARKETSHARE, as plataformas LINUX e MAC somam 8,92% das estações de trabalho comercializadas em 2014,
  • 3. o que justifica o foco inicial no sistema Windows, por representar uma parcela maior do mercado. 2 TRABALHOS CORRELATOS Este capítulo apresenta trabalhos relacionados com a ferramenta desenvolvida. São comparados recursos oferecidos e implementação. 2.1 WINPARROT WinParrot é uma ferramenta gratuita que pode gravar seus cliques do mouse e teclas pressionadas, e reproduzi-las mais tarde, o que permite automatizar muitas tarefas comuns de PC. Está disponível no site oficial do desenvolvedor (http://www.winparrot.com/indexPt.html). Utilizando o WinParrot, é possível abrir o browser e realizar alguma ação específica, como acessar o e-mail automaticamente. Também é possível utilizar o WinParrot em uma demonstração, inserindo números automaticamente em uma planilha e observar o resultado em um gráfico. Pode haver complicações, particularmente com cliques do mouse, um problema recorrente em gravadores de macros. Um exemplo é utilizar a calculadora, se a janela “Calc” é aberta em uma posição diferente de quando a macro foi gravada, cliques serão enviados para uma posição diferente e a sequência irá falhar. 2.2 AUTOHOTKEY AutoHotKey é um software gratuito, criado por Chris Mallet (AUTOHOTKEY, 2015), capaz de criar e usar atalhos pelo teclado e clique do mouse. É possível escrever macros digitando ou usando um gravador de macros, criando combinações para ativar atalhos. Em sua instalação, são incluídas ferramentas adicionais que permitem criar abreviações, como por exemplo, digitar “BR” e automaticamente o programa irá substituir o texto por “Brasil”. Através do programa, é possível configurar atalhos para aumentar ou diminuir o volume, iniciar ou encerrar programas e aplicações, receber e alterar o conteúdo do ClipBoard, entre outras rotinas. No modo “escrever macros”, o usuário deve conhecer o básico de programação, pois, apesar de possuir um módulo de referência completo, o usuário tem dificuldade em montar um fluxo de trabalho com facilidade. No modo “gravação de macro”, o usuário não tem acesso a sequência de ações que o programa irá utilizar. Também pode haver problemas com cliques do mouse quando uma janela não abrir na mesma posição de quando a macro foi gravada. Está disponível no site oficial do projeto (https://autohotkey.com/).
  • 4. 2.3 COMPARATIVO Utilizando o módulo de gravação de macros das ferramentas citadas acima, o usuário não acompanha o passo-a-passo do desenvolvimento do script, impedindo que sejam alterados os tempos de cliques e de espera para a inicialização de um programa, ou a abertura completa de uma página, o que pode interromper a execução correta da sequência. Utilizando o programa AutoHotKey, o usuário deve possuir conhecimentos de programação, para obter e visualizar uma sequência personalizada. Os problemas descritos, não estão presentes na ferramenta apresentada neste artigo, pois o usuário tem acesso a sequência de ações e pode alterar cada ação facilmente, assim como definir os tempos de espera para garantir a execução correta da ação. 3 MODELO DE DESENVOLVIMENTO A engenharia de software é uma disciplina de engenharia relacionada com todos os aspectos de produção de software, desde os estágios iniciais de especificação do sistema até a sua manutenção, ou seja, mesmo depois que este entrar em operação (SOMMERVILLE, 2008). A engenharia de software atua em um papel primordial dentro dos ciclos de vida do projeto e do produto de software, que é proporcionar uma maior qualidade e produtividade ao software, baseando-se nos estudos e padrões de engenharia mais recomendados pela área de desenvolvimento de software. Para atender os objetivos descritos, esse projeto utiliza o método de Desenvolvimento Exploratório descrito por SOMMERVILLE (2008 p.45-46), que é um tipo de Modelo Evolucionário de desenvolvimento de software, e tem como base desenvolver um sistema apresentando as versões para o usuário, que, por sua vez, fará comentários para o aprimoramento e modificações, até que os requisitos sejam cumpridos. A FIGURA 2 ilustra o processo do modelo evolucionário. Neste processo, inicialmente temos uma descrição geral da ferramenta em desenvolvimento. A partir da descrição geral é desenvolvida uma versão inicial do software. Em seguida, essa versão é submetida a avaliação do usuário. Durante o desenvolvimento da ferramenta - a partir da avaliação do usuário -, são geradas versões que vão evoluindo durante o processo, até alcançar os objetivos desejados.
  • 5. Figura 2 - Modelo de Desenvolvimento Evolucionário Fonte: AUTOR Este modelo é utilizado principalmente em softwares onde é difícil realizar especificações, softwares de pequeno a médio porte, e em pesquisas para desenvolvimento de sistemas de Inteligência Artificial. As vantagens deste modelo de desenvolvimento são: desenvolvimento rápido do sistema, o envolvimento do usuário durante o desenvolvimento do projeto, e a facilidade de adaptações nos requisitos. Tem como desvantagem: a inviabilidade de manter documentações para cada versão, e a tendência do desenvolvedor de corromper a estrutura do software para atender à avalição do usuário. 3.1 CICLO DE DESENVOLVIMENTO O ciclo de desenvolvimento compreende um conjunto de atividades que vão desde a descrição inicial, até a finalização do projeto. Inspirado no modelo proposto por FILHO (2011, p.48-49), as atividades que serão necessárias para desenvolver a ferramenta serão: • Levantamento de requisitos – É a primeira atividade do ciclo de desenvolvimento do software, onde é listada as funcionalidades que deverão ser desenvolvidas para alcançar os objetivos. • Análise de Requisitos – Após o levantamento de requisitos, é feita uma análise para checar se todos requisitos foram identificados, se são consistentes e se não existem ambiguidades. • Revisão do Projeto – A partir da lista de requisitos, se especifica os tipos de dados que serão utilizados, além de definir os mecanismos de acesso a esses dados, e como serão manipulados. • Implementação – Observar o projeto da ferramenta, para que código seja escrito, implementando as funcionalidades levantadas na primeira etapa do ciclo, e na avaliação do usuário.
  • 6. • Testes – Checar se a ferramenta funciona adequadamente ou não. Se encontrada alguma inconsistência, ela deverá ser corrigida antes de se disponibilizar a próxima versão para teste do usuário. Devido ao modelo de desenvolvimento escolhido para o software, esse ciclo deverá ser repetido a cada versão disponibilizada para teste do usuário. As observações feitas na avaliação do usuário serão incluídas no levantamento e análise dos requisitos. 3.2 FERRAMENTAS Para a realização deste projeto, foi preparado um ambiente com os programas e ferramentas necessárias para o desenvolvimento do software. Não há aqui a intenção de mostrar a instalação de cada ferramenta, e sim uma breve descrição: • AutoIt - AutoIt v3 é uma linguagem de script BASIC-like freeware, projetado para automatizar a interface gráfica do Windows e scripting geral, a fim de automatizar tarefas de modo que não são possíveis ou confiáveis com outras linguagens (FIESNER, 2007). • JAVA – A linguagem JAVA “seduziu” os programadores com sua sintaxe amigável, recursos orientados a objetos, gerenciamento de memória, e a promessa de portabilidade. O código fonte é escrito e compilado utilizando o compilador JAVAC, e executado pela máquina virtual JAVA (SIERRA; BATES, 2005, p. 1-5). Uma das vantagens de se utilizar o JAVA, é que além de ser uma linguagem, é uma plataforma de desenvolvimento. Com ele é possível desenvolver aplicações para desktop, celular, cartão, web, televisão digital, etc. Existem várias comunidades voltadas para o JAVA, e graças a elas, é possível obter materiais para estudo de maneira fácil, permitindo a troca de experiência com pessoas que já atuam na área a mais tempo. Quando se compila um arquivo em JAVA, é possível executar o programa em qualquer sistema operacional compatível. • JavAuto - JavAuto é uma linguagem de automação, único devido à sua capacidade de executar cliques do mouse, simular entrada do teclado, e realizar pesquisas de pixel (JAVAUTO, 2015). Sua biblioteca implementa métodos que facilitam e aceleram o desenvolvimento de qualquer aplicação, pois o desenvolvedor não precisa se preocupar em desenvolver funções básicas da linguagem. • NetBeans - é um projeto open-source, dedicado ao fornecimento de produtos de desenvolvimento de software, que abordam as necessidades dos desenvolvedores, dos usuários e das empresas para que possam desenvolver produtos de forma rápida, eficiente e fácil, aproveitando os pontos fortes da plataforma Java (NETBEANS, 2015).
  • 7. Todas as ferramentas descritas são gratuitas e podem ser encontradas na internet, assim como informações relevantes sobre sua utilização e também discussões sobre diferentes modos de aplicações e implementações possíveis utilizando-as. 3.3 REQUISITOS DA FERRAMENTA O objetivo geral do projeto é desenvolver uma ferramenta de automação de fácil interação e que simule as ações dos usuários, com o intuito de melhorar a eficiência na execução das tarefas. Desde modo, a ferramenta deve atender aos seguintes requisitos: • A ferramenta deve possuir funções que simulam cliques do mouse, entradas através do teclado, ativar uma janela, e espera por determinado tempo. • A ferramenta deve possuir uma função que permita ao usuário obter o título de uma janela, para que a função que ativa uma janela seja executada com sucesso. • A ferramenta deve exibir o script, que será gerado para execução automatizada da tarefa. • O usuário poderá abrir, salvar e editar o script gerado. • Uma interface sequencial e autoexplicativa, com o objetivo de facilitar o uso por qualquer usuário. Com o fim do desenvolvimento, será entregue ao usuário uma versão da ferramenta que forneça as funcionalidades previstas nos requisitos. 3.4 DIAGRAMA DE COMPONENTES No UML, um componente é uma parte encapsulada, reutilizável e substituível do software. Bons candidatos para componente são itens que executam uma funcionalidade essencial, e serão usados com frequência, em todo sistema (HAMILTON; MILES, 2006). Um diagrama representa graficamente a estrutura projetada, onde os componentes constroem entre si relações de dependência. A FIGURA 3 ilustra os componentes necessários para o funcionamento da ferramenta proposta.
  • 8. Figura 3 – Diagrama básico de componentes Fonte: AUTOR 3.5 DIAGRAMA DE CASO DE USO Um caso de uso descreve a sequência de eventos de um ator que usa um sistema para completar uma ação, onde o ator é o usuário que utiliza o sistema ou algum componente que executa uma ação. Caso de uso não são especificações de requisitos ou especificações funcionais, mas ilustram e implicam requisitos na história que eles contam. Um diagrama de caso de uso ilustra um conjunto de casos de uso para um sistema - os atores -, e a relação entre os atores e os casos de uso (LARMAN, 2000 citado por SANTOS, R. A. S., 2011). A FIGURA 4 ilustra as ações do ator usuário para criar um script e do ator AutoTask que representa a ferramenta que irá executar a sequência construída:
  • 9. Figura 4 – Diagrama de caso de uso Fonte: AUTOR 4 RESULTADOS E DISCUSSÕES Este espaço tem o objetivo de apresentar os resultados obtidos com a execução deste projeto. Pretende-se examinar o produto final, verificando quais benefícios foram realmente úteis para os usuários. O uso dos conceitos até aqui abordados, devem convergir para a resolução do problema de produtividade no ambiente empresarial. O resultado principal é a ferramenta AutoTask. Esta ferramenta deverá proporcionar ao usuário, um ganho de produtividade na execução de tarefas que podem ser automatizadas. 4.1 IMPLANTAÇÃO A ferramenta foi implantada em um escritório de projetos na área administrativa. Foram treinados três usuários, com diferentes níveis de conhecimento em informática, para validar o uso de forma heterogênea. Foram implantadas as tarefas de automação, para a criação de pastas eletrônicas no sistema de gerenciamento eletrônico de documentos da empresa, e a edição de um campo no sistema de planejamento dos recursos, que informa onde estão armazenados os documentos referentes à obra. Para a criação de uma pasta eletrônica, os dados devem ser lidos em uma planilha e posteriormente preenchidos no sistema, que é uma interface WEB para a plataforma de gerenciamento de documentos GEDOC, da empresa SISGRAPH. A SISGRAPH é uma empresa sediada em São Paulo que oferece soluções completas para sistemas de informações geográficas, engenharia & processos, gerenciamento de informações, segurança pública e
  • 10. manufatura (SISGRAPH, 2015). No sistema são armazenados documentos como projeto, licenças ambientais, carta acordo e outros. As figuras abaixo demostram os passos para criação da pasta: A FIGURA 5 ilustra o relatório gerado para criação de pastas. Na planilha exportada estão as informações para a criação da pasta: Figura 5 – Informações para a criação da pasta eletrônica Fonte: AUTOR A FIGURA 6 demonstra o processo para criação de pastas no sistema de gerenciamento eletrônico de documentos, onde o usuário deve preencher os dados da pasta eletrônica: Figura 6 – Interface para criação de pastas eletrônicas Fonte: AUTOR
  • 11. Após preencher os dados de acordo com a planilha, o usuário confirma a operação. Confirmada a criação, a pasta é retirada da caixa de entrada pessoal do usuário através da operação Remover Workflow, como demonstrado na FIGURA 7: Fonte: AUTOR Figura 7 – Sequência para finalização da criação
  • 12. Cumpridas as etapas acima, a pasta estará criada e disponível para uso. Os documentos referentes as obras executadas, são armazenadas nas pastas eletrônicas e sua localização é informada no campo “Arquivo Morto” do sistema de planejamento dos recursos utilizado pela empresa. A edição do campo, acontece a partir da lista de pastas criadas, utilizando o número da nota de serviço referente a cada obra, a sequência de ações é demonstrada abaixo: O usuário entra na nota de serviço através da função “Modificar nota serviço”, como demonstrado na FIGURA 8: Figura 8 – Demonstrativo de como entrar na nota de serviço Fonte: AUTOR Já na tela para edição da nota de serviço, o usuário deve selecionar a aba “Dados Complementares” e editar o campo “Arquivo morto”, informando a localização dos documentos da obra. Essa sequência é demonstrada na FIGURA 9:
  • 13. Figura 9 – Edição do campo “Arquivo morto” Fonte: AUTOR As duas tarefas demonstradas são executadas diariamente, facilitando assim a coleta e comparação de resultados. 4.2 INTERFACE DA FERRAMENTA Durante o levantamento de requisitos, foi idealizada uma interface de fácil interpretação. O usuário deve atingir seu objetivo sem a necessidade de um treinamento complexo, facilitando a implantação para vários usuários da empresa. Dessa forma, o ganho em produtividade poderá ser difundido em outras áreas da empresa. A FIGURA 10 ilustra a interface da ferramenta, onde o usuário encontra todas as funções definidas no levantamento de requisitos. É possível também visualizar, editar, executar, salvar ou descartar o script gerado.
  • 14. Figura 10 – Tela Principal Fonte: AUTOR Para criar a ação de clique do mouse, o usuário deve informar a posição do mouse e qual botão será utilizado no clique, como ilustrado na FIGURA 11. Figura 11 – Configurações da ação do Mouse Fonte: AUTOR As ações que simulam o teclado também deverão ser informadas pelo usuário. Ele poderá enviar um texto da área de transferência ou um texto pré-definido, como demonstrado na FIGURA 12. Figura 12 – Configurações da ação do Teclado Fonte: AUTOR Os tempos de espera deverão ser informados em milissegundos, como ilustrado na FIGURA 13.
  • 15. Figura 13 – Configurações do Tempo de Espera Fonte: AUTOR Para ativar uma janela, o usuário informa o título da janela, como demonstrado na FIGURA 14. Figura 14 – Configurações da Função de Ativar Janela Fonte: AUTOR 4.3 IMPACTO DA UTILIZAÇÃO DA FERRAMENTA A quantidade e complexidade de tarefas realizadas por um usuário pode aumentar de acordo com o crescimento da empresa, impactando diretamente em sua produtividade. Atividades comuns, que podem ser automatizadas, são o foco da ferramenta, pois através da automação, o usuário pode executar outras tarefas que requerem a intervenção humana, enquanto a ferramenta trabalha nas atividades automatizadas. Quando se trata de uma pequena empresa, o tempo gasto para execução de uma única tarefa, não chega a representar um ganho de produtividade. Em casos de empresas maiores, o tempo dispensado para executar esta mesma tarefa poderá ser alto, assim, haverá um ganho de produtividade, ou o redirecionamento de recursos humanos. A ferramenta AutoTask atua especificamente neste problema, propondo o uso de scripts automatizados para realização das tarefas. Será apenas necessário, criar um script que realize determinada tarefa e agendá-lo para a execução. Com o uso do AutoTask, o resultado esperado é um menor esforço para a realização de tarefas, porém, pode ser visto também, como uma ferramenta de automação de rotinas diárias, sem ganho efetivo de produtividade, mas executadas com maior eficiência.
  • 16. 4.4 OBJETIVOS ALCANÇADOS O desenvolvimento utilizando a metodologia proposta, prevê como resultado um potencial produto ao final de cada ciclo. O AutoTask chega a sua primeira versão, atendendo aos objetivos relacionados nos requisitos da ferramenta. O AutoTask foi desenvolvido utilizando a linguagem JAVA, a linguagem AutoIT e a biblioteca JavAuto, que se mostraram aptas para a resolução do problema proposto. O JAVA, por ser uma tecnologia portável, permitirá que o AutoTask seja portado para outros sistemas operacionais sem muito esforço. Através da ferramenta, o tempo gasto para execução das tarefas é reduzido, além de proporcionar mais tempo para o usuário executar outras funções, o que traz um impacto positivo para a produtividade. Na QUADRO 1, é apresentado os dados coletados durante os testes da aplicação, o que ilustra sua usabilidade e eficiência. Quadro 1 – Resultados Obtidos Fonte: AUTOR Com a realização deste projeto, os objetivos traçados inicialmente foram alcançados, e a ferramenta ainda poderá ser aprimorada, com a possibilidade de agregar mais funcionalidades e recursos que forneçam ao usuário uma ferramenta completa de automação. 5 CONCLUSÃO Após a realização deste projeto, foi possível observar que os requisitos propostos e atendidos, são um marco inicial para a construção de um produto ainda mais elaborado. A ferramenta tem potencial para trazer melhores resultados para usuários e empresas. O objetivo deste projeto foi desenvolver uma ferramenta eficiente, que auxilie usuários e empresas a alcançarem as metas relacionadas à produtividade e ao ganho de eficiência. A
  • 17. cada dia, novas tarefas surgem no ambiente corporativo, e com o uso da tecnologia, essas tarefas vão encontrando novas soluções. Através da junção da linguagem JAVA, da linguagem AutoIT e da utilização da biblioteca JavAuto, foi possível concretizar uma ferramenta de auxílio para os usuários. De forma simples e sequencial, o usuário consegue criar scripts para execução de tarefas e com isso, obter ganhos de eficiência. Outra relevante contribuição está relacionada à metodologia utilizada. O método evolucionário de desenvolvimento cria uma aproximação do desenvolvedor com o usuário final, tornando a ferramenta relevante para o público-alvo. O foco no resultado reflete positivamente na agilidade e na qualidade da aplicação desenvolvida. 6 TRABALHOS FUTUROS Após o desenvolvimento da ferramenta proposta, algumas sugestões dadas pelos usuários selecionados e observações feitas pelo desenvolvedor, podem ser futuramente implementadas à ferramenta, como permitir o uso de variáveis, permitindo que valores sejam atribuídos e utilizados durante a execução do script, estruturas condicionais e de repetição, possibilitando que o script faça comparações e tome decisões durante a execução, ampliando as possibilidades oferecidas ao usuário, com o intuito de manter o desenvolvimento da aplicação e aprimorar suas funções. DOWNLOAD – AutoTask <http://noxinc.com.br/projetos%20open/AutoTask_1/AutoTaks.zip> REFERÊNCIAS AUTOHOTKEY. Site Oficial. Disponível em:< http://autohotkey.com/docs/Tutorial.htm >. Acesso em: 26 out. 2015. CATHO. Trabalho sob pressão: Como lidar. São Paulo, 2011. Disponível em <http://www.catho.com.br/carreira-sucesso/noticias/trabalho-sob-pressao-como-lidar>. Acesso em 25 mai. 2015. FIESNER, A. AutoIt v3: Your Quick Guide. St. Louis: O’Reilly Media, 2007. FILHO, A.M.S. Desenvolvimento de Software requer Processo e Gestão. Revista Espaço Acadêmico, Maringá, v.123, p.46-57, ago. 2011. HAMILTON, K; MILES, R. Learning UML 2.0, 1ª edição. USA: O’Reilly, 2006. JAVAUTO. Getting-Started. Disponível em:< http://javauto.org/docs/getting-started.html> Acesso em: 26 mai. 2015.
  • 18. NETBEANS. About Us. Disponível em:< https://netbeans.org/about/index.html>. Acesso em: 26 mai. 2015. NET MARKETSHARE. Site Oficial. Disponível em:< http://netmarketshare.com>. Acesso em: 26 mai. 2015. SANTOS, E. C. M. Gestão da Produtividade Administrativa. Caxias do Sul: Faculdade Anglo Americano de Caxias do Sul; 2012. Disponível em: <http://pt.slideshare.net/EvilasioSilva/evilasio-cesar-gesto-da-produtividade- administrativa10424638>. Acesso em 29 abr. 2015. SANTOS, R. A. S. PyTM – Python Task Manager. Desenvolvimento de um software para automação de tarefas utilizando Python. Lavras: UNIVERSIDADE FEDERAL DE LAVRAS, 2011. Disponível em: <http://www.ginux.ufla.br/files/mono-RadsonSantos.pdf >. Acesso em 28 abr. 2015. SIERRA, K.; BATES, B. Use a Cabeça Java, 2ª edição. Rio de Janeiro: AltaBooks, 2005. SITE OFICIAL WINPARROT. Disponível em: < http://www.winparrot.com >. Acesso em 15 out. 2015. SISGRAPH. A SISGRAPH. Disponível em:< http://www.sisgraph.com.br/about/ >. Acesso em: 26 out. 2015. SOMMERVILLE, I. Engenharia de software, 8ª edição. São Paulo: Pearson, 2007. WINPARROT. Site Oficial. Disponível em:< http://www.winparrot.com/indexPt.html >. Acesso em: 26 out. 2015.