• Nenhum resultado encontrado

Wiki4PGest: publicação automática de dados numa ferramenta Wiki

N/A
N/A
Protected

Academic year: 2021

Share "Wiki4PGest: publicação automática de dados numa ferramenta Wiki"

Copied!
61
0
0

Texto

(1)

¸˜ao Implementada3.819Modelo da Solu¸c˜ao Implementadafigure.3.8 ¸˜ao do m´odulo Java3.920Execu¸c˜ao do m´odulo Javafigure.3.9 ´agina de Detalhe de um Pro-jecto3.1325P´agina de Detalhe de um Projectofigure.3.13 ´agina de Detalhe de um Projecto(continua¸c˜ao)3.1425P´agina de Detalhe de um Projecto(continua¸c˜ao)figure.3.14 ´

aficos Esfor¸co Previsto/Real3.1526Gr´aficos Esfor¸co Previsto/Realfigure.3.15 ¸c˜ao de

Esfor¸co3.1627Distribui¸c˜ao de Esfor¸cofigure.3.16 ¸c˜oes do wiki4pgest.bat3.1828wiki4pgest.batfigure.3.18 ´

odigo inserido no c´odigo fonte do MediaWiki3.2836C´odigo inserido no c´odigo fonte do MediaWikifigure.3.28 ¸c˜ao de TarefasA.142Calendariza¸c˜ao de

Tare-fastable.A.1 ¸c˜ao de Tarefas(continua¸c˜ao)A.243Calendariza¸c˜ao de Tarefas(continua¸c˜ao)table.A.2

(2)

Universidade de Lisboa

Faculdade de Ciˆencias

Departamento de Inform´

atica

”Wiki4PGest”

Publica¸c˜

ao autom´

atica de dados numa ferramenta

Wiki

projecto realizado na

EF Tecnologias de Software, S.A.

por

Diogo Nuno Castanheira Ribeiro Lopes

Mestrado em Engenharia Inform´

atica

(3)
(4)

Universidade de Lisboa

Faculdade de Ciˆencias

Departamento de Inform´

atica

”Wiki4PGest”

Publica¸c˜

ao autom´

atica de dados numa ferramenta

Wiki

projecto realizado na

EF Tecnologias de Software, S.A.

por

Diogo Nuno Castanheira Ribeiro Lopes

PROJECTO

Projecto orientado pela Profa. Dra. Ana Paula Afonso e co-orientado por Dra. Fernanda Ferreira

Mestrado em Engenharia Inform´

atica

(5)
(6)

Declara¸

ao

Diogo Nuno Castanheira Ribeiro Lopes, aluno no 29357 da Faculdade de Ciˆencias da Universidade de Lisboa, declara ceder os seus direitos de c´opia sobre o seu Re-lat´orio de Projecto em Engenharia Inform´atica, intitulado ”Wiki4PGest - Publica¸c˜ao autom´atica de dados numa ferramenta Wiki”, realizado no ano lectivo de 2007/2008 `

a Faculdade de Ciˆencias da Universidade de Lisboa para o efeito de arquivo e con-sulta nas suas bibliotecas e publica¸c˜ao do mesmo em formato electr´onico na Internet. FCUL, 29 de Setembro de 2008

Profa Ana Paula Afonso, supervisora do projecto de Diogo Nuno Castanheira Ribeiro Lopes, aluno da Faculdade de Ciˆencias da Universidade de Lisboa, declara concordar com a divulga¸c˜ao do Relat´orio do Projecto em Engenharia Inform´atica, intitulado ”Wiki4PGest - Publica¸c˜ao autom´atica de dados numa ferramenta Wiki”. Lisboa, 29 de Setembro de 2008

(7)
(8)

Resumo

Hoje em dia a partilha de informa¸c˜ao ´e uma caracter´ıstica cada vez mais intr´ınseca na sociedade em que vivemos. A crescente necessidade em haver um acesso r´apido, intuitivo e seguro a uma grande quantidade e variedade de informa¸c˜ao, leva a que sejam criados v´arios mecanismos que a satisfa¸cam. A Wikip´edia baseada no con-ceito Wiki ´e um exemplo de um caso de sucesso nesta ´area e tem desempenhado um papel fundamental quanto `a promo¸c˜ao deste conceito de informa¸c˜ao colaborativa. No actual clima empresarial e de neg´ocio, as empresas est˜ao a apostar tamb´em nesta pol´ıtica de partilha de informa¸c˜ao de forma a agilizar o processo de coopera¸c˜ao entre os v´arios colaboradores que as integram, resultando num melhoramento do processo de execu¸c˜ao de tarefas. Assim sendo, o conceito de informa¸c˜ao colaborativa tem-se traduzido como um objectivo estrat´egico de qualquer empresa.

Este projecto teve como objectivo desenvolver um sistema de pesquisa e de pub-lica¸c˜ao autom´atica de informa¸c˜ao inerente `a gest˜ao de projectos da Empresa EF Tecnologias de Software, S.A. numa ferramenta Wiki, de forma a facilitar aos seus colaboradores o acesso a este tipo de informa¸c˜ao e a oferecer aos gestores de projecto uma melhor perspectiva de gest˜ao dos mesmos.

PALAVRAS-CHAVE:

wiki, pesquisa, publica¸c˜ao autom´atica, informa¸c˜ao colaborativa, partilha de informa¸c˜ao.

(9)
(10)

Abstract

Nowadays, sharing of information is a intrinsic feature in our society. The growing need to have a rapid, intuitive and secure access to a large quantity and variety of information, leads to the creation of various mechanisms to support that need. The Wikipedia based on the Wiki concept, is an example of success in this area and has played a key role in the promotion of the concept of collaborative information. The companies are also adopting this policy of sharing information to expedite the process of cooperation between the partners of companies, resulting in an improve-ment on their processes of tasks executions. Thereby, the concept of collaborative information is becoming a strategic goal of any company.

This project aim to develop a search system of automatic publication in a Wiki tool, of information related to project management of the company EF Tecnologias de Software, S.A., to facilitate the access to that information and give managers a better perspective of their project managements.

KEYWORDS:

wiki, search, automatic publication, collaborative information, sharing of information.

(11)
(12)

Conte´

udo

Lista de Figuras viii

Lista de Tabelas ix 1 Introdu¸c˜ao 1 1.1 Motiva¸c˜ao . . . 1 1.2 Objectivos . . . 2 1.3 Organiza¸c˜ao do documento . . . 2 2 Enquadramento 3 2.1 EF Tecnologias, S.A. . . 3 2.2 PGest . . . 4 2.3 MediaWiki . . . 5 3 Projecto - Wiki4PGest 6 3.1 An´alise . . . 6 3.1.1 Primeira Abordagem . . . 6 3.1.2 Objectivos . . . 9 3.2 Desenho . . . 10 3.2.1 Arquitectura . . . 10

3.2.2 Diagrama de Casos de Uso . . . 13

3.2.3 Diagrama de Actividades . . . 14 3.2.4 Ferramentas Utilizadas . . . 15 3.3 Planeamento . . . 16 3.3.1 Etapas . . . 16 3.3.2 Mapa de Gantt . . . 18 3.4 Implementa¸c˜ao . . . 19

3.4.1 M´odulo Java e Op¸c˜oes de Implementa¸c˜ao . . . 20

3.4.2 M´odulo Python Wikipedia Robots Framework . . . 29

3.4.3 Outras Funcionalidades . . . 33

(13)

4 Conclus˜ao 38 4.1 Resumo do trabalho desenvolvido . . . 38 4.2 Revis˜ao Cr´ıtica . . . 39 4.3 Trabalho Futuro . . . 39

A Calendariza¸c˜ao de Tarefas 41

B C´odigo de uma p´agina Wiki 44

(14)

Lista de Figuras

2.1 Carteira Clientes EF . . . 4

3.1 Exemplos de plug-ins do Google Desktop . . . 7

3.2 Google Search Appliance . . . 8

3.3 Arquitectura Wiki4PGest . . . 12

3.4 Diagrama de Casos de Uso . . . 13

3.5 Diagrama de Actividades . . . 14

3.6 Etapas Processo de Desenvolvimento . . . 16

3.7 Mapa de Gantt . . . 18

3.8 Modelo da Solu¸c˜ao Implementada . . . 19

3.9 Execu¸c˜ao do m´odulo Java . . . 20

3.10 Modelo de Classes . . . 21

3.11 Ficheiro Properties . . . 22

3.12 Projectos em Curso . . . 24

3.13 P´agina de Detalhe de um Projecto . . . 25

3.14 P´agina de Detalhe de um Projecto(continua¸c˜ao) . . . 25

3.15 Gr´aficos Esfor¸co Previsto/Real . . . 26

3.16 Distribui¸c˜ao de Esfor¸co . . . 27

3.17 Batch Files . . . 28

3.18 wiki4pgest.bat . . . 28

3.19 Ficheiro user-config.py . . . 29

3.20 Ficheiro ef-family.py . . . 30

3.21 Diagrama de de Actividade do Bot pagefromfile.py . . . 31

3.22 Bot pagefromfile.py . . . 31

3.23 Diagrama de de Actividade do Bot upload.py . . . 32

3.24 Bot upload.py . . . 32

3.25 Pesquisa . . . 33

3.26 Smiles . . . 34

3.27 Ficheiro build.xml . . . 35

3.28 C´odigo inserido no c´odigo fonte do MediaWiki . . . 36

(15)
(16)

Lista de Tabelas

A.1 Calendariza¸c˜ao de Tarefas . . . 42 A.2 Calendariza¸c˜ao de Tarefas(continua¸c˜ao) . . . 43

(17)
(18)

Cap´ıtulo 1

Introdu¸

ao

O presente documento apresenta o projecto Wiki4PGest realizado no ˆambito da disciplina de Projecto de Engenharia de Inform´atica (PEI), integrada no 2o ano do Mestrado em Engenharia Inform´atica da Faculdade de Ciˆencias da Universidade de Lisboa, no ano lectivo de 2007/2008. O projecto teve uma dura¸c˜ao de 9 meses tendo como in´ıcio Setembro de 2007 e t´ermino em Maio de 2008.

O projecto consiste no desenvolvimento do sistema Wiki4PGest de publica¸c˜ao au-tom´atica de informa¸c˜ao de gest˜ao de projectos e foi desenvolvido na empresa EF Tecnologias de Software S.A., tendo como utilizadores alvo todos os colaboradores da empresa.

1.1

Motiva¸

ao

Este projecto surge da necessidade de fomentar e aumentar a partilha de informa¸c˜ao de projectos entre os colaboradores da empresa. A informa¸c˜ao relacionada com a gest˜ao de projecto ´e normalmente gerida pelos chefes de projecto, que por sua vez a partilham com as suas equipas de desenvolvimento. Com isto, pretende-se assim alargar o acesso a alguma desta informa¸c˜ao `as v´arias equipas como forma de divulgar mais facilmente informa¸c˜ao de v´arios projectos em curso, como por exemplo: estado de execu¸c˜ao dos v´arios projectos e das respectivas fases e tarefas associadas, tarefas executadas, datas de entrega para produ¸c˜ao, recursos humanos alocados, pessoas envolvidas em determinada tarefa, distribui¸c˜ao temporal de esfor¸co.

Outro aspecto tamb´em importante ´e a divulga¸c˜ao da informa¸c˜ao atrav´es de mecan-ismos de crit´erios de pesquisa de forma a agilizar o seu acesso.

A informa¸c˜ao que se pretende partilhar encontra-se dispon´ıvel num sistema de in-forma¸c˜ao PGest1 desenvolvido internamente pela EF.

O PGest n˜ao disponibiliza funcionalidades de pesquisa eficazes sobre os projectos,

1Aplica¸ao de suporte `a gest˜ao e controlo de projectos e recursos da empresa EF Tecnologias

(19)

Cap´ıtulo 1. Introdu¸c˜ao 2

nem um m´odulo de visualiza¸c˜ao de dados acess´ıvel a todos os colaboradores. Por outro lado, foi desenvolvido numa tecnologia interna que est´a a ser descontinuada. Inicialmente, a forma adoptada para a divulga¸c˜ao desta informa¸c˜ao aos colabo-radores da empresa, foi atrav´es de edi¸c˜ao manual de p´aginas na ferramenta Medi-aWiki.2. Mas devido `a elevada quantidade de informa¸c˜ao e `a necessidade constante de actualiza¸c˜ao, esta tarefa torna-se extremamente repetitiva, consumindo bastante tempo para ser realizada.

1.2

Objectivos

Este projecto tem como objectivo criar uma aplica¸c˜ao que permita a publica¸c˜ao autom´atica e visualiza¸c˜ao de informa¸c˜ao relacionada com a execu¸c˜ao de projec-tos desenvolvidos na empresa, que possibilite um r´apido acesso aos seus conte´udos atrav´es de crit´erios de pesquisa.

Outro dos objectivos preconizados foi o de incluir informa¸c˜ao de estado de execu¸c˜ao dos projectos, e efectuar uma estrutura¸c˜ao de toda a sua apresenta¸c˜ao.

O objectivo final ´e facilitar o acesso e conhecimento a este tipo de informa¸c˜ao, de forma a agilizar o processo de execu¸c˜ao de tarefas e de desenvolvimento e gest˜ao de projectos.

1.3

Organiza¸

ao do documento

Este documento encontra-se organizado da seguinte forma:

• Cap´ıtulo 1 - Apresenta¸c˜ao geral do projecto onde ´e feita uma abordagem pre-liminar e uma contextualiza¸c˜ao relativamente aos seus objectivos e `a motiva¸c˜ao existente dentro da institui¸c˜ao de acolhimento para a sua realiza¸c˜ao.

• Cap´ıtulo 2 - Enquadramento institucional e apresenta¸c˜ao dos dois sistemas envolvidos no desenvolvimento do sistema Wiki4PGest (PGest e MediaWiki). • Cap´ıtulo 3 - Desenvolvimento do projecto, onde s˜ao apresentadas todas as

etapas que envolveram a concretiza¸c˜ao do projecto.

• Cap´ıtulo 4 - Conclus˜ao, onde ´e apresentado um discurso conclusivo relativa-mente `a elabora¸c˜ao deste documento e do projecto. ´E tamb´em realizada uma an´alise cr´ıtica ao projecto, s˜ao apontados alguns aspectos a melhorar e o tra-balho futuro com o intuito de acrescentar novas funcionalidades `a aplica¸c˜ao.

2Pacote de software livre de edi¸c˜ao e partilha de artigos, caracterizado por ser o motor nuclear

(20)

Cap´ıtulo 2

Enquadramento

Neste cap´ıtulo ´e apresentada a institui¸c˜ao de acolhimento onde foi realizado o PEI e os dois sistemas utilizados na empresa que s˜ao parte integrante no ˆambito do projecto.

2.1

EF Tecnologias, S.A.

A EF ´e uma empresa em actividade h´a 15 anos, iniciada com um conjunto de colabo-radores provenientes do mundo universit´ario especializados nas ´areas da investiga¸c˜ao e desenvolvimento e com grande experiˆencia em projectos inovadores.

A EF oferece solu¸c˜oes tecnol´ogicas profissionais no desenvolvimento e integra¸c˜ao em sistemas de informa¸c˜ao e sistemas distribu´ıdos, com uma orienta¸c˜ao preferencial para as necessidades efectivas e requisitos espec´ıficos dos seus clientes. Tem uma forte base tecnol´ogica embora se afirme principalmente como uma empresa orien-tada ao cliente e que desenvolve solu¸c˜oes direccionadas para o sector financeiro e da banca online.

A inova¸c˜ao e pioneirismo em novas plataformas e tecnologias de desenvolvimento ´e um requisito profundamente integrado nas suas solu¸c˜oes profissionais apresentadas. A EF tem desenvolvido e acumulado uma extensa experiˆencia e um s´olido conhec-imento na ´area financeira, fornecendo solu¸c˜oes orientadas para servi¸cos banc´arios electr´onicos para bancos sediados em Portugal e Espanha, e servi¸cos de software para pagamento electr´onico para clientes em Portugal e Reino Unido. Desde os maiores projectos desenvolvidos para o maior grupo banc´ario portuguˆes, a CGD-Caixa Geral de Dep´ositos, a EF tamb´em oferece solu¸c˜oes para outras institui¸c˜oes da ´area finan-ceira como, o Banco Caixa Geral, BANIF, Deutsche Bank, Montepio Geral, Banco Esp´ırito Santo, SIBS. A EF oferece tamb´em solu¸c˜oes para um conjunto de clientes ligados a outras ´areas como a TMN, Optimus na ´area das telecomunica¸c˜oes, e para clientes de outras ´areas distintas como a Fidelidade Mundial Seguros, Funda¸c˜ao Calouste Gulbenkian, Infarmed, e ANA.

(21)

Cap´ıtulo 2. Enquadramento 4

A estreita liga¸c˜ao com os seus clientes, em que as competˆencias tecnol´ogicas e a experiˆencia adquirida actuam como factores-chave, e a garantia de elevada disponi-bilidade e de proximidade das suas equipas de engenharia de software, actuam como factores decisivos para o sucesso das solu¸c˜oes fornecidas.

1

Figura 2.1: Carteira Clientes EF

2.2

PGest

O PGest caracteriza-se como sendo um sistema central de apoio `a gest˜ao e controlo de execu¸c˜ao de projectos e recursos da empresa. Os colaboradores utilizam esta fer-ramenta para introduzir o esfor¸co dispendido em execu¸c˜ao de tarefas relativas aos projectos em que est˜ao inseridos. Interessa salientar que no PGest existe o conceito de projecto que ´e estruturado em fases de processo de desenvolvimento de um sis-tema de informa¸c˜ao. Cada fase tem uma ou v´arias tarefas associadas. O projecto ´e gerido pelo chefe de projecto, que aloca recursos aos projectos e atribui-lhes tarefas. No fim de cada dia de trabalho, o colaborador regista o tempo consumido para de-senvolver a tarefa que lhe foi atribu´ıda, registando desta forma as suas actividades di´arias.

Em vez de se ter optado por adquirir uma das variad´ıssimas ferramentas de gest˜ao de projecto que se encontram dispon´ıveis no mercado, optou-se por desenvolver internamente esta aplica¸c˜ao de gest˜ao de projecto. Isto porque o PGest foi desen-volvido de forma a poder responder a requisitos de integra¸c˜ao com outros sistemas internos, nomeadamente um sistema de Bug Tracking tamb´em desenvolvido pela pr´opria empresa. O controlo completo do sistema permite `a empresa implementar

(22)

Cap´ıtulo 2. Enquadramento 5

funcionalidades `a medida que facilita as tarefas de gest˜ao de projecto na interac¸c˜ao com os clientes.

2.3

MediaWiki

O MediaWiki[2] ´e uma ferramenta de edi¸c˜ao e publica¸c˜ao colaborativa de conte´udos. Esta ferramenta permite que v´arios utilizadores, colaborativamente, possam criar e editar conte´udos informativos partilhados por todos os utilizadores. O MediaWiki disponibiliza um conjunto de funcionalidades que permitem a edi¸c˜ao de conte´udos numa sintaxe simples designada por WikiText. Permite tamb´em interligar p´aginas e adicionar v´arios tipos de conte´udos e submeter coment´arios aos artigos publicados. Inicialmente esta tecnologia foi desenvolvida para a Wikip´edia[4] e para todos os projectos a ela associados, mas actualmente tamb´em ´e usada por projectos fora do ˆ

ambito da Wikip´edia.

Na empresa, o MediaWiki ´e usado como uma ferramenta de colabora¸c˜ao de docu-menta¸c˜ao e partilha de informa¸c˜ao gen´erica no seio da empresa, desde documenta¸c˜ao de projectos, a informa¸c˜ao t´ecnica de car´acter mais geral.

(23)

Cap´ıtulo 3

Projecto - Wiki4PGest

Este projecto surge na necessidade de disponibilizar um mecanismo de publica¸c˜ao autom´atica e de pesquisa de dados relacionados com a gest˜ao dos projectos desen-volvidos na pr´opria empresa.

Neste cap´ıtulo s˜ao apresentadas todas as etapas que envolveram a execu¸c˜ao deste projecto.

3.1

An´

alise

3.1.1

Primeira Abordagem

O projecto inicialmente denominava-se por Google4PGest e a inten¸c˜ao inicial era desenvolvˆe-lo usando a plataforma Google Desktop[1] em vez do MediaWiki[2]. De notar que esta foi a primeira abordagem para responder ao desafio e `as inten¸c˜oes inerentes a este projecto, que consistiam em desenvolver funcionalidades de pesquisa sobre a base de dados do PGest recorrendo a API’s do Google, integrando funcional-idades com o Google Desktop.

O Google Desktop ´e uma software com mini-aplica¸c˜oes que permitem a realiza¸c˜ao de pesquisas de dados e ficheiros no Desktop de um computador. Para al´em disso, o Google Desktop fornece uma ferramenta de desenvolvimento com uma API que permite desenvolver outras mini-aplica¸c˜oes e plug-ins de indexa¸c˜ao. A ideia ini-cial seria a de, atrav´es desse kit de desenvolvimento, implementar um plug-in que indexasse todos os projectos da empresa e respectiva informa¸c˜ao associada, e que permitisse acedˆe-la atrav´es de crit´erios de pesquisa. Esta seria uma solu¸c˜ao bastante interessante e promissora, na medida em que os colaboradores podiam ter acesso `a informa¸c˜ao de gest˜ao de projectos da empresa atrav´es de um plug-in instalado nos pr´oprios ambientes de trabalho, onde efectuavam a sua pesquisa da informa¸c˜ao dese-jada usando todas as funcionalidades e potencialidades do motor de pesquisa Google. Esta primeira abordagem correspondeu `a primeira fase do est´agio, e envolveu todo um trabalho de investiga¸c˜ao e pesquisa de documenta¸c˜ao dispon´ıvel na Web de

(24)

Cap´ıtulo 3. Projecto - Wiki4PGest 7

forma¸c˜ao relativa a mecanismos e maneiras de realizar uma integra¸c˜ao com o PGest. Mas depois de realizar algum estudo sobre esta tecnologia e de realizar algumas ex-periˆencias com esta ferramenta, chegou-se `a conclus˜ao que esta integra¸c˜ao n˜ao seria poss´ıvel porque a API disponibilizada pelo Google ´e bastante limitada e insuficiente para desenvolver esta integra¸c˜ao, no sentido em que a sua pr´opria implementa¸c˜ao e funcionalidades disponibilizadas s˜ao demasiados espec´ıficas e restritas focando-se mais para aplica¸c˜oes mais simples.

(25)

Cap´ıtulo 3. Projecto - Wiki4PGest 8

Chegando a esta conclus˜ao, houve mais um trabalho de investiga¸c˜ao no sentido de encontrar outra solu¸c˜ao Google para uma integra¸c˜ao do seu motor de pesquisa com o PGest. E chegou-se `a ´unica solu¸c˜ao disponibilizada pela Google que real-mente responderia a este desafio, o Google Search Appliance1[3]. Esta seria ´optima

solu¸c˜ao empresarial que responderia aos objectivos e inten¸c˜oes propostas para este projecto, mas ´e uma solu¸c˜ao que n˜ao s´o envolveria custos para a empresa, como tamb´em n˜ao se inclui no ˆambito de desenvolvimento de um projecto de est´agio em engenharia inform´atica, visto consistir num dispositivo que apenas seria necess´ario instal´a-lo e configur´a-lo com a base de dados do PGest, sem que houvesse um qual-quer desenvolvimento cient´ıfico associado. Optou-se ent˜ao por mudar a tecnologia utilizada, mantendo-se inalterados o objectivo e prop´osito do projecto.

Figura 3.2: Google Search Appliance

Com isto, foi necess´ario haver novamente um trabalho de investiga¸c˜ao, mas desta vez explorando outras tecnologias e ferramentas e n˜ao ficar limitado `a tecnologia Google.

O MediaWiki foi a outra solu¸c˜ao encontrada com funcionalidades e potencialidades que v˜ao encontro do prop´osito do projecto, tamb´em com a vantagem de ser uma solu¸c˜ao totalmente livre de licen¸cas e custos para a empresa. Com alguma in-vestiga¸c˜ao pela pr´opria documenta¸c˜ao desta ferramenta, conseguiu-se moldar uma forma de integra¸c˜ao com o PGest e assim responder aos objectivos propostos. Para al´em disso decidiu-se usar o MediaWiki por ser uma ferramenta com uma com-ponente informativa muito forte que se enquadra perfeitamente no prop´osito deste projecto, por ser uma ferramenta j´a utilizada no seio da empresa onde os

colabo-1Dispositivo empresarial comercializado pela Google, que faz indexa¸ao de todo o tipo de

(26)

Cap´ıtulo 3. Projecto - Wiki4PGest 9

radores j´a se sentem de alguma forma familiarizados com o seu funcionamento na qual usam-na para partilhar algumas informa¸c˜oes, manuais e conhecimentos inter-nos de ordem t´ecnica dentro do n´ucleo da empresa.

3.1.2

Objectivos

Os gestores de projecto s˜ao os respons´aveis por inserir e manipular dados na aplica¸c˜ao PGest relacionados com a gest˜ao dos projectos que s˜ao respons´aveis, como por exem-plo: criar projectos, criar e editar fases e tarefas de desenvolvimento de um projecto, alocar colaboradores a projectos e a tarefas, inserir datas previstas e reais de in´ıcio e t´ermino de projectos, alocar recursos a projectos e respectivas tarefas. Por outro lado, os colaboradores s˜ao responsabilizados por inserir os dados relacionados com as tarefas que lhes s˜ao atribu´ıdas no seguimento do desenvolvimento de cada pro-jecto, assim como o esfor¸co investido em determinado projecto e/ou tarefa. Toda esta informa¸c˜ao ´e inserida no PGest onde ´e registada e armazenada num sistema de gest˜ao de base de dados Informix.

O objectivo para este projecto consiste em desenvolver um sistema que aceda a esta base de dados, interprete e publique os dados num servidor MediaWiki, de modo a que possam ser acedidos por todos os colaboradores da empresa.

A informa¸c˜ao relacionada com os projectos da empresa a ser apresentada de forma estruturada respondendo assim `as necessidades dos colaboradores, ´e a seguinte:

• Nome do projecto;

• Referˆencia e ID na Base de Dados;

• Descri¸c˜ao do projecto e das respectivas fases e tarefas de desenvolvimento; • Cliente a que o projecto se destina;

• Datas previstas e reais de desenvolvimento de cada projecto; • Estado do desenvolvimento de cada Projecto, Fase e Tarefa; • Esfor¸cos em horas e em recurso humanos;

• Fases de desenvolvimentos associadas a cada projecto; • Tarefas associadas a cada fase de desenvolvimento;

• Informa¸c˜ao de car´acter gr´afico e estat´ıstico de distribui¸c˜ao temporal de esfor¸co; • Informa¸c˜ao com componente dinˆamica, de alerta em rela¸c˜ao ao estado e ao

(27)

Cap´ıtulo 3. Projecto - Wiki4PGest 10

Para al´em disto existem algumas caracter´ısticas que s˜ao exigidas para este sis-tema. Uma delas ´e o facto da sua execu¸c˜ao ser totalmente independente de qualquer opera¸c˜ao humana. A ideia ´e que toda a informa¸c˜ao seja apresentada num formato pr´e-definido a uma hora previamente estipulada de maneira a que todo este processo seja totalmente aut´onomo. Outra caracter´ıstica do sistema ´e que seja escal´avel na sua habilidade de manipular uma por¸c˜ao crescente de informa¸c˜ao, ou estar preparado para o seu crescimento. O sistema ter´a tamb´em de ser implementado de maneira a que a altera¸c˜ao de informa¸c˜ao a publicar ou at´e mesmo a inclus˜ao de novas fun-cionalidades seja de f´acil concretiza¸c˜ao.

A publica¸c˜ao e a partilha interna deste tipo de conte´udos ´e uma mais valia para o seio da empresa, no sentido em que permite que o colaborador se mantenha in-formado relativamente a projectos e tarefas em curso na empresa. O objectivo ´e oferecer ao colaborador uma base de suporte ao controlo e gest˜ao do seu processo de execu¸c˜ao de tarefas. A interpreta¸c˜ao dos dados recolhidos e apresenta¸c˜ao de dados estat´ısticos dos projectos v˜ao tamb´em proporcionar a todos os colaboradores uma vis˜ao global de execu¸c˜ao de planeamento de todos os projectos em curso na empresa.

3.2

Desenho

Esta sec¸c˜ao apresenta a arquitectura e diagramas de modela¸c˜ao do Wiki4PGest. ´E apresentada uma vis˜ao global do funcionamento do Wiki4PGest e uma perspectiva da sua interac¸c˜ao com o utilizador e respectiva sequˆencia de actividades.

3.2.1

Arquitectura

Inicialmente, depois de proceder juntamente com a coordenadora de projecto a uma an´alise de requisitos para apurar todas as caracter´ısticas e aspectos funcionais da aplica¸c˜ao, teve de haver um trabalho de investiga¸c˜ao no sentido de encontrar uma solu¸c˜ao para o desafio proposto para este projecto. Durante a pesquisa foi necess´ario ter em aten¸c˜ao o facto da solu¸c˜ao ter de preencher todos os requisitos propostos pela coordenadora do projecto. Depois de alguma pesquisa na internet `a procura de uma resposta para o problema, chegou-se a uma solu¸c˜ao atrav´es da pr´opria doc-umenta¸c˜ao do sistema MediaWiki, que reside na utiliza¸c˜ao da Python Wikipedia Robots Framework[6] que consiste numa ferramenta desenvolvida no ˆambito do Me-diaWiki que disponibiliza uma biblioteca com algumas fun¸c˜oes do MediaWiki de realiza¸c˜ao de tarefas rotineiras e de manuten¸c˜ao. Esta biblioteca ´e composta por scripts escritos em c´odigo python denominados por Bots, em que cada um realiza uma opera¸c˜ao espec´ıfica sobre um sistema MediaWiki. Os Bots utilizados para este efeito s˜ao respectivamente, o pagefromfile.py que recebe um ficheiro e publica o seu conte´udo escrito em HTML e/ou em WikiText no MediaWiki em forma de p´agina

(28)

Cap´ıtulo 3. Projecto - Wiki4PGest 11

Wiki, e o upload.py que trata de efectuar uploads de imagens para o MediaWiki. Para que esta solu¸c˜ao pudesse ser aplicada, foi necess´ario proceder `a altera¸c˜ao de algum c´odigo fonte do MediaWiki instalado na empresa, de maneira a permitir fazer upload de ficheiros de imagem, e de configurar o sistema para que n˜ao seja poss´ıvel editar e modificar as p´aginas enviadas pelos Bots.

Uma vez encontrada esta solu¸c˜ao poss´ıvel, foi necess´ario efectuar alguma s´erie de testes e experiˆencias no sentido de apurar se esta seria uma solu¸c˜ao vi´avel e se con-seguiria preencher todos os requisitos propostos para o projecto, caso que se veio a verificar.

Com isto tratou-se ent˜ao de moldar todo o processo complementar a esta solu¸c˜ao, mais propriamente o processo de acesso `a informa¸c˜ao do PGest e a constru¸c˜ao dos documentos em ficheiros com toda essa informa¸c˜ao segundo certos moldes pr´ e-definidos, para servir de input aos Bots da Python Wikipedia Robots Framework. Como uma das funcionalidades pedidas ´e o facto de a aplica¸c˜ao ter de apresentar gr´aficos estat´ısticos de esfor¸co, teve de haver tamb´em um trabalho de investiga¸c˜ao nesta ´area, no sentido de arranjar um biblioteca Java que desse suporte a este requi-sito. A biblioteca pesquisada que melhor se aplica `as caracter´ısticas do Wiki4PGest e que ser´a utilizada, ´e a JFreeChart[7]. O que se pretende com este suporte de gera¸c˜ao de gr´aficos, ´e de fornecer gr´aficos estat´ısticos do esfor¸co estimado e real da carga hor´aria de cada projecto e sua distribui¸c˜ao temporal, para serem apresentados nas p´aginas Wiki de cada projecto.

Ora, uma vez realizado todo o processo de investiga¸c˜ao e de realiza¸c˜ao de testes `

a solu¸c˜ao idealizada, iniciou-se ent˜ao o processo de desenvolvimento da aplica¸c˜ao. Durante todo este processo houve a necessidade de efectuar revis˜oes aos requisitos do projecto de forma a completar a aplica¸c˜ao com alguns aspectos funcionais impor-tantes que n˜ao se tinham analisado aquando da an´alise de requisitos. Foi tamb´em necess´ario realizar alguns testes unit´arios durante o desenvolvimento de maneira a tornar a aplica¸c˜ao o mais robusta e eficaz poss´ıvel.

Na fase final do projecto foi necess´ario criar uma documenta¸c˜ao pr´opria do Wiki4PGest com aspectos ligados `a instala¸c˜ao e configura¸c˜ao da aplica¸c˜ao, de maneira a oferecer aos colaborador da empresa uma base de suporte e de informa¸c˜ao da aplica¸c˜ao e de como ela funciona.

(29)

Cap´ıtulo 3. Projecto - Wiki4PGest 12

(30)

Cap´ıtulo 3. Projecto - Wiki4PGest 13

3.2.2

Diagrama de Casos de Uso

Este diagrama apresenta as ac¸c˜oes que o utilizador pode executar com a utiliza¸c˜ao do Wiki4PGest.

Tal como ´e apresentado neste diagrama, o utilizador pode efectuar v´arios tipos de consulta de informa¸c˜ao acerca de projectos da empresa. Pode consultar uma listagem de informa¸c˜ao simples de projectos em curso e de projectos antigos que foram desenvolvidos na empresa mas que n˜ao se encontram mais em curso. Pode tamb´em consultar informa¸c˜ao de projectos mais completa e detalhada, e pode con-sultar informa¸c˜ao relacionada com cada tarefa que comp˜oe cada projecto. Para al´em das consultas, o utilizador pode executar uma pesquisa de informa¸c˜ao inserindo palavras-chave relacionadas com a informa¸c˜ao que deseja aceder.

(31)

Cap´ıtulo 3. Projecto - Wiki4PGest 14

3.2.3

Diagrama de Actividades

Este diagrama representa o fluxo de actividades inerentes `a interac¸c˜ao do utilizador com o Wiki4PGest.

Este diagrama ajuda a perceber a sequˆencia e op¸c˜oes de escolha de ac¸c˜oes envolvidas na interac¸c˜ao do utilizador alvo com o Wiki4PGest.

1

(32)

Cap´ıtulo 3. Projecto - Wiki4PGest 15

3.2.4

Ferramentas Utilizadas

Nesta sec¸c˜ao s˜ao apresentadas todas as ferramentas envolvidas e utilizadas na ex-ecu¸c˜ao de todas as tarefas do desenvolvimento de todo o projecto.

Eclipse SDK vers˜ao 3.3.0

Ferramenta de desenvolvimento de software utilizada para implementar todo o c´odigo Java.

SQL Explorer vers˜ao 3.5.0

Plug-in do Eclipse para acesso, interroga¸c˜ao e manipula¸c˜ao da Base de Dados do PGest.

SVN Repository Exploring

Plug-in do Eclipse que permite efectuar um rastreio de vers˜oes e controlo de al-tera¸c˜oes dos v´arios ficheiros do projecto.

Apache Ant

Ferramenta que permite gerir as dependˆencias e automatizar a constru¸c˜ao de soft-ware, e efectuar um conjunto de tarefas associadas ao build do projecto.

MediaWiki

Software de edi¸c˜ao e partilha de conte´udos, onde s˜ao publicadas as p´aginas com os dados dos v´arios projectos, p´aginas estas que ficam dispon´ıveis via Web.

Python Wikipedia Bot Framework

Biblioteca de fun¸c˜oes do MediaWiki. Disponibiliza um conjunto de m´odulos em Python que permitem realizar tarefas rotineiras em qualquer sistema MediaWiki. IDLE - Python’s Integrated Development Environment

Ambiente de desenvolvimento de c´odigo Python. WinShell

Editor de texto utilizado para a elabora¸c˜ao dos relat´orios usando tecnologia ”Latex”. Microsoft Visio

Ferramenta de elabora¸c˜ao de modelos e diagramas; Powerdesigner

(33)

Cap´ıtulo 3. Projecto - Wiki4PGest 16

de dados do PGest;

3.3

Planeamento

De modo a garantir a qualidade do produto desenvolvido e de alcan¸car uma boa produtividade durante o seu desenvolvimento, a execu¸c˜ao deste projecto seguiu or-denadamente as etapas mais relevantes que integram um qualquer processo de de-senvolvimento de software.

Embora o m´etodo de desenvolvimento inicialmente escolhido para este projecto tenha sido o m´etodo em cascata, o desenvolvimento acabou por seguir um fluxo iterativo e incremental pelas v´arias etapas, pelo facto de que `a medida a que se ia evoluindo iam surgindo alguns incrementos e revis˜oes a serem realizadas nas etapas anteriores.

Figura 3.6: Etapas Processo de Desenvolvimento

3.3.1

Etapas

An´alise - Fase de arranque do projecto. Nesta etapa ´e exposto em detalhe o projecto a desenvolver e o que se pretende com ele. E feito um modelo geral e´ um levantamento de requisitos no qual se define concretamente todos os aspectos funcionais e caracter´ısticas que a aplica¸c˜ao a desenvolver dever´a de possuir. S˜ao feitas algumas reuni˜oes com a coordenadora do projecto onde se define algumas guidelines que o desenvolvimento do projecto dever´a seguir, n˜ao s´o relativamente a requisitos funcionais e n˜ao funcionais do Wiki4PGest, como tamb´em a quest˜oes do seu pr´oprio planeamento. O modelo de an´alise foi rectificado nas diversas itera¸c˜oes do projecto.

Nesta fase tenta-se tamb´em modelar e encontrar solu¸c˜oes que melhor se adequam `

as inten¸c˜oes do projecto e aos requisitos previamente analisados.

Foi durante esta processo que ocorreu a mudan¸ca de abordagem do projecto para o MediaWiki, por se chegar `a conclus˜ao que a integra¸c˜ao com o Google Desktop n˜ao seria vi´avel.

(34)

Cap´ıtulo 3. Projecto - Wiki4PGest 17

Desenho - Nesta fase foram realizados diagramas de Casos de Uso e de Ac-tividades, de forma a adquirir uma melhor perspectiva do problema. Foi tamb´em executada toda a modela¸c˜ao da arquitectura da aplica¸c˜ao e de Modelo de Classes para com isto dar in´ıcio ao processo de implementa¸c˜ao.

Implementa¸c˜ao - Esta ´e sem d´uvida a etapa mais prolongada do projecto. ´E nesta etapa que se constr´oi aquilo que se modelou, respeitando sempre as regras funcionais e de dom´ınio anteriormente estabelecidas. Antes de se proceder `a imple-menta¸c˜ao foram tomadas algumas decis˜oes de forma a respeitar as caracter´ısticas e inten¸c˜oes da aplica¸c˜ao. `A medida que se foi avan¸cando nesta etapa foram surgindo novos requisitos a novas op¸c˜oes de implementa¸c˜ao a serem revistos.

Testes - Nesta etapa foram realizados testes que visam garantir que todos os requisitos da aplica¸c˜ao sejam respeitados. Esta etapa foi iterada durante a etapa de implementa¸c˜ao com a execu¸c˜ao de alguns testes unit´arios sobre os m´etodos im-plementados no m´odulo Java da aplica¸c˜ao. No final da implementa¸c˜ao foi ent˜ao realizado um processo de testes mais exaustivo de maneira a garantir a qualidade de execu¸c˜ao da aplica¸c˜ao.

Finaliza¸c˜ao - ´Ultima fase destinada a packaging e distribui¸c˜ao da aplica¸c˜ao. Foi necess´ario construir documenta¸c˜ao informativa que apresenta o fundamento do Wiki4PGest, o seu funcionamento, op¸c˜oes funcionais da interface com o utilizador, op¸c˜oes de implementa¸c˜ao, e o seu modo de instala¸c˜ao e configura¸c˜ao, de maneira a fornecer uma base de suporte a qualquer colaborador que no futuro pretenda insta-lar e/ou configurar o Wiki4PGest.

(35)

Cap´ıtulo 3. Projecto - Wiki4PGest 18

3.3.2

Mapa de Gantt

A seguir ´e apresentado o mapa de Gantt correspondente ao planeamento do est´agio, com a distribui¸c˜ao temporal de cada etapa de desenvolvimento do projecto. A cal-endariza¸c˜ao de todas as tarefas realizadas no ˆambito do projecto ´e apresentada na sec¸c˜ao apˆendices no final do documento.

(36)

Cap´ıtulo 3. Projecto - Wiki4PGest 19

3.4

Implementa¸

ao

Nesta sec¸c˜ao ´e apresentado todo o modelo de implementa¸c˜ao do Wiki4PGest. A figura 3.8 apresenta o modelo de desenho da solu¸c˜ao implementada.

Interessa salientar que nesta solu¸c˜ao existem dois m´odulos nucleares, o m´odulo Java e o m´odulo Python Wikipedia Robots Framework, cada um com objectivos e tarefas bem definidos.

Vamos agora estudar aprofundadamente cada um.

(37)

Cap´ıtulo 3. Projecto - Wiki4PGest 20

3.4.1

odulo Java e Op¸

oes de Implementa¸

ao

´

E necess´ario salientar as raz˜oes pela qual levaram a que este m´odulo fosse realizado na linguagem Java. E as raz˜oes residem no facto desta ser a linguagem mais utilizada no desenvolvimento dos projectos da empresa, e por ser tamb´em a linguagem em que eu e a grande maioria dos t´ecnicos de desenvolvimento nos sentimos mais familiar-izados para trabalhar. Esta ´e a maior componente de toda a aplica¸c˜ao Wiki4PGest em termos de tarefas funcionais.

´

E nesta componente que os dados dos projectos registados no PGest s˜ao acedi-dos e trataacedi-dos, e s˜ao gerados ficheiros com toda essa informa¸c˜ao, para servirem de input ao m´odulo Python, para que este possa proceder `a gera¸c˜ao da p´aginas Wiki e apresent´a-las no sistema MediaWiki. ´E tamb´em nesta componente que s˜ao con-stru´ıdos os gr´aficos estat´ısticos de dados relativos `a gest˜ao dos projectos, para que o m´odulo Python os possa enviar para o MediaWiki e serem apresentados nas p´aginas Wiki dos projectos. Todo o output gerado por esta componente vai servir de input ao m´odulo Python que por sua vez tratar´a de enviar toda a documenta¸c˜ao gerada para o MediaWiki.

Figura 3.9: Execu¸c˜ao do m´odulo Java

Seguidamente, ´e apresentado o Modelo de Classes desta componente, com todas as classes e respectivos m´etodos implementados.

Neste modelo ´e representado o conjunto de pacotes de classes Java e respectivos m´etodos envolvidos na implementa¸c˜ao do Wiki4PGest.

(38)

Cap´ıtulo 3. Projecto - Wiki4PGest 21

(39)

Cap´ıtulo 3. Projecto - Wiki4PGest 22

As pr´oximas sec¸c˜oes pretendem oferecer uma boa percep¸c˜ao de todas as ex-ecu¸c˜oes que integram este m´odulo do Wiki4PGest.

V˜ao ser apresentadas as op¸c˜oes de implementa¸c˜ao dos v´arios aspectos funcionais deste m´odulo da aplica¸c˜ao, e vamos estudar detalhadamente cada funcionalidade implementada neste m´odulo, de maneira a compreender a finalidade de cada uma e como foram implementadas.

Acesso aos dados do PGest

Na classe main do m´odulo Java do Wiki4PGest, aquando do arranque da aplica¸c˜ao, ´e estabelecida uma liga¸c˜ao `a Base de Dados do PGest usando a classe Properties do Java que permite definir num ficheiro os campos da base de dados a aceder. Esta op¸c˜ao de implementa¸c˜ao permite que facilmente se configure o Wiki4PGest a operar sobre uma qualquer m´aquina onde esteja alojada a base de dados do PGest, bastando apenas alterar neste ficheiro os campos respectivos `a base de dados.

Figura 3.11: Ficheiro Properties

Este acesso ´e feito usando o JDBC(Java Data Base Connection) para sistemas Informix. Com esta liga¸c˜ao pretende-se ter acesso aos dados dos projectos registados na aplica¸c˜ao PGest para se proceder `a recolha dos dados dos projectos a apresen-tar nas p´aginas Wiki. Esta informa¸c˜ao ´e adquirida atrav´es da classe QueriesMan-ager.java por via de interroga¸c˜oes `a base de dados usando comandos SQL. Antes de implementar esta classe, foi feita a sua interface Java QueriesManagerInterface.java de forma a moldar os m´etodos de interroga¸c˜ao `a base de dados necess´arios a imple-mentar.

(40)

Cap´ıtulo 3. Projecto - Wiki4PGest 23

Estrutura¸c˜ao dos dados recolhidos do PGest

Os dados recolhidos do PGest s˜ao estruturados por classes implementadas que d˜ao a no¸c˜ao de projecto, fase e tarefa. Estas s˜ao respectivamente: FullProjectInfo.java, SimpleProjectInfo.java, Phase.java, Task.java e SimpleTask.java. S˜ao nos objectos destas classes que toda a informa¸c˜ao ´e organizada para depois ser utilizada para es-crever nos ficheiros de output. Estas classes s˜ao utilizadas e manipuladas conforme os dados a apresentar nas p´aginas Wiki a construir. Por exemplo, as classes Full-ProjectInfo.java e Task.java sendo classes que representam cada projecto e tarefa de um forma completa, s˜ao usadas apenas nas p´aginas Wiki que iram apresentar os dados completos de projecto e tarefas, enquanto que as classes SimpleProject-Info.java e SimpleTask.java que s˜ao classes que representam os projectos e tarefas de um forma mais simplificada, s˜ao usadas apenas nas p´aginas que apenas apresentar˜ao informa¸c˜ao de uma forma mais simplificada.

Gera¸c˜ao de P´aginas Wiki

A classe PagesGenerator.java do package wikipages ´e a respons´avel pelo controlo e pela escrita do c´odigo WikiText e HTML nos ficheiros de output, de toda a in-forma¸c˜ao recolhida do PGest. Durante o processo de constru¸c˜ao dos ficheiros de output, esta classe faz tamb´em o controlo do c´odigo WikiText e HTML respons´avel pelo Layout das p´aginas que iram ser geradas atrav´es destes ficheiros. Nesta classe tamb´em foram implementados m´etodos que tratam de realizar a convers˜ao de to-dos os caracteres especiais to-dos dato-dos do PGest para codifica¸c˜ao UTF-82, visto que o Bot pagefromfile.py que vai gerar as p´aginas Wiki atrav´es dos ficheiros de output do Java, apenas opera com ficheiros em que o seu conte´udo esteja codificado em UTF-8.

Escrita de P´aginas em Ficheiros

Os ficheiros onde ´e escrito todo o c´odigo WikiText s˜ao respectivamente: histori-cal.wiki, projects.wiki, individualProjects.wiki e individualTasks.wiki. Estes ficheiros contˆem todo o c´odigo de todas as p´aginas Wiki a serem geradas para o MediaWiki. O ficheiro historical.wiki contem a p´agina Wiki respons´avel por apresentar todos os projectos terminados e em fase de manuten¸c˜ao, o ficheiro projects.wiki contem a p´agina que apresenta os projectos ainda em curso na empresa, o ficheiro individual-Projects.wiki contem todas as p´aginas individuais de todos os projectos, e o ficheiro individualTasks.wiki todas as p´aginas individuais de todas as tarefas associadas aos

2Tipo de codifica¸ao Unicode que pode representar qualquer caracter universal padr˜ao do

(41)

Cap´ıtulo 3. Projecto - Wiki4PGest 24

projectos. Estes dois ´ultimos ficheiros tˆem o c´odigo das v´arias p´aginas Wiki sep-arados por delimitadores para que o Bot pagefromfile.py respons´avel por gerar as p´aginas saiba onde come¸ca e acaba cada p´agina a ser gerada. O delimitador que representa o in´ıcio de uma p´agina ´e a string ”xxxx”, e o que representa o final da p´agina ´e a string ”yyyy”.

Na sec¸c˜ao Apˆendices ´e apresentado uma parcela do conte´udo do ficheiro individual-Projects.wiki com os delimitadores referidos.

As figuras 3.12, 3.13 e 3.14 apresentam exemplos de p´aginas no MediaWiki geradas pelos Bots com estes ficheiros de input.

Figura 3.12: Projectos em Curso

Gera¸c˜ao de Gr´aficos Estat´ısticos

Existe tamb´em a classe respons´avel por gerar os dois gr´aficos estat´ısticos de esfor¸co de cada projecto. Estes gr´aficos s˜ao criados usando a API JFreeChart. O primeiro gr´afico denominado por ”Esfor¸co Previsto/Real”, consiste num gr´afico cartesiano de barras que apresenta o esfor¸co estimado e real das horas de trabalho consumidas

(42)

Cap´ıtulo 3. Projecto - Wiki4PGest 25

Figura 3.13: P´agina de Detalhe de um Projecto

(43)

Cap´ıtulo 3. Projecto - Wiki4PGest 26

para a realiza¸c˜ao do respectivo projecto. Este gr´afico tem tamb´em uma componente dinˆamica que muda a cor da barra entre verde e vermelho, consoante o valor real de esfor¸co estiver dentro ou n˜ao do prazo estimado. A figura 3.15 apresenta um exemplo de um gr´afico em que o esfor¸co real encontra-se dentro do valor previsto e um gr´afico em que o valor do esfor¸co real excede o valor previsto.

Figura 3.15: Gr´aficos Esfor¸co Previsto/Real

O gr´afico de ”Distribui¸c˜ao de Esfor¸co”consiste igualmente num gr´afico cartesiano mas agora de representa¸c˜ao linear, em que apresenta cronologicamente a distribui¸c˜ao do esfor¸co consumido ao longo do tempo. O espa¸co temporal ´e apresentado em v´arias representa¸c˜oes, consoante a dura¸c˜ao do projecto em quest˜ao: di´ario se for menos de 31 dias, semanal se for entre 31 e 182 dias, mensal se for entre 182 e 365, e trimestral se tiver uma dura¸c˜ao superior a um ano.

A figura 3.16 apresenta um exemplo de um gr´afico deste g´enero, em que a dura¸c˜ao do projecto representado ´e compreendido entre 182 e 365 dias, atribuindo assim ao gr´afico um intervalo de tempo mensal.

(44)

Cap´ıtulo 3. Projecto - Wiki4PGest 27

Figura 3.16: Distribui¸c˜ao de Esfor¸co

Controlo de Redundˆancia de P´aginas Wiki

Durante a fase de testes do Wiki4PGest, tornou-se evidente de que a opera¸c˜ao de gera¸c˜ao de p´aginas para o MediaWiki de todos os projectos e tarefas do PGest, traduzia-se numa opera¸c˜ao bastante demorada (cerca de 9 horas), visto haver uma grande quantidade de projectos, e principalmente de tarefas. Realmente n˜ao fazia muito sentido o Wiki4PGest ser redundante ao ponto de gerar p´aginas de projectos e tarefas que n˜ao sofreram altera¸c˜oes nos seus dados desde a sua ´ultima gera¸c˜ao. Ent˜ao pensou-se numa maneira de contornar esta situa¸c˜ao, e a solu¸c˜ao passou por criar hashes dos dados de cada projecto e tarefa de cada vez que o Wiki4PGest corre, e comparar com o valor que se encontra armazenado numa tabela criada no PGest para o efeito com valores de hashes geradas anteriormente que correspondem `

a ´ultima altera¸c˜ao dos respectivos dados. Assim apenas s˜ao geradas novas p´aginas de projectos e tarefas novas, e p´aginas com dados que sofreram altera¸c˜oes.

Batch Files

A execu¸c˜ao dos Bots com os ficheiros de output do Java, ´e feita a partir de batch files gerados tamb´em pelo Java, e pelo batch file wiki4pgest.bat escrito com o prop´osito de correr todos estes batch files que desencadeiam as v´arias execu¸c˜oes dos Bots. Ou seja, o ficheiro wiki4pgest.bat contem as instru¸c˜oes que fazem correr os Bots para os v´arios ficheiros que contem o c´odigo das p´aginas Wiki.

Para melhor compreender o seu funcionamento, a figura 3.17 apresenta uma ilus-tra¸c˜ao que esclarece toda a interac¸c˜ao destes Batch Files com os Bot, e o c´odigo das instru¸c˜oes escritas no batch file wiki4pgest.bat.

(45)

Cap´ıtulo 3. Projecto - Wiki4PGest 28

Figura 3.17: Batch Files

Figura 3.18: wiki4pgest.bat

O ficheiro makegraphics.bat referenciado no wiki4pgest.bat, ´e o ficheiro que con-tem as instru¸c˜oes que executa o Bot upload.py para todos os gr´aficos gerados pelo m´odulo Java. `A medida que o m´odulo Java gera cada gr´afico, ´e escrito neste ficheiro a instru¸c˜ao que trata de executar o Bot para esse respectivo gr´afico.

(46)

Cap´ıtulo 3. Projecto - Wiki4PGest 29

3.4.2

odulo Python Wikipedia Robots Framework

Tal como foi dito em 3.2.1, este m´odulo consiste numa ferramenta desenvolvida no ˆ

ambito do MediaWiki que disponibiliza um conjunto de scripts que realizam tarefas rotineiras e de manuten¸c˜ao num sistema MediaWiki. Estas tarefas s˜ao implemen-tadas em m´odulos escritos em c´odigo python denominados por Bots (Robots). Estes Bots s˜ao ferramentas autom´aticas e configur´aveis que operam em qualquer sistema MediaWiki de modo a facilitar a execu¸c˜ao de opera¸c˜oes repetitivas e em s´erie, que em caso de serem feitas manualmente se traduzem em trabalho excessivo e repetitivo consumindo bastante tempo a ser realizado.

No Wiki4PGest, este m´odulo ´e ent˜ao respons´avel por gerar e enviar para o servi-dor MediaWiki todas as p´aginas escritas no ficheiros de output do m´odulo Java. Para al´em disso, ´e tamb´em respons´avel por enviar as imagens correspondentes aos gr´aficos estat´ısticos gerados pelo Java, e as imagens informativas caracterizadas por ”smiles”que informam o utilizador acerca do estado do projectos/fases/tarefas e re-spectivos prazos. Estas opera¸c˜oes s˜ao realizadas a partir dos Bot pagefromfile.py e upload.py.

Ficheiro de Configura¸c˜ao user-config.py

Este ´e o ficheiro de configura¸c˜ao geral da Python Wikipedia Robot Framework. Neste ficheiro definem-se os aspectos gerais da aplica¸c˜ao, tais como, a linguagem a ser usada na comunica¸c˜ao dos Bot com a Wikip´edia, o ficheiro family.py com as configura¸c˜oes do sistema MediaWiki a aceder, e o utilizador com conta activa no MediaWiki.

(47)

Cap´ıtulo 3. Projecto - Wiki4PGest 30

Ficheiro de Configura¸c˜ao ef-family.py ´

E neste ficheiro onde ´e feita a configura¸c˜ao do sistema MediaWiki onde a Python Wikipedia Robot Framework opera. ´E necess´ario configurar o nome da fam´ılia do sistema, o seu URL, o seu namespace, vers˜ao do MediaWiki, e a ”path”para a p´agina principal da Wikip´edia a aceder.

(48)

Cap´ıtulo 3. Projecto - Wiki4PGest 31

Bot pagefromfile.py

Tal como j´a foi dito anteriormente, o pagefromfile.py ´e o Bot respons´avel por servir de input os ficheiros de output do Java, e a partir da´ı gerar as respectivas p´aginas e envi´a-las para o servidor MediaWiki.

Seguidamente ´e apresentado o seu diagrama de actividade e uma figura que apre-senta o Bot em execu¸c˜ao:

Figura 3.21: Diagrama de de Actividade do Bot pagefromfile.py

(49)

Cap´ıtulo 3. Projecto - Wiki4PGest 32

Bot upload.py

O Bot upload.py trata de realizar o upload das imagens dos gr´aficos gerados pelo java e dos smiles j´a mencionados. Depois estas imagens v˜ao ser apresentadas nas p´aginas Wiki sendo referenciadas por links para o local onde se encontram armazenadas no servidor MediaWiki.

Seguidamente o respectivo diagrama de actividade e figura que apresenta o Bot em execu¸c˜ao:

Figura 3.23: Diagrama de de Actividade do Bot upload.py

(50)

Cap´ıtulo 3. Projecto - Wiki4PGest 33

3.4.3

Outras Funcionalidades

Pesquisa

O campo de pesquisa ´e uma funcionalidade integrada de ra´ız na plataforma Medi-aWiki que permite que o utilizador v´a ao encontro da informa¸c˜ao desejada.

Inserindo um palavra chave relacionada com a informa¸c˜ao pretendida, ´e apresentado um resultado com todas as p´aginas Wiki que contem informa¸c˜ao relacionada com essa palavra chave, bastando apenas que o utilizador seleccione a p´agina correspon-dente `a informa¸c˜ao que pretende.

(51)

Cap´ıtulo 3. Projecto - Wiki4PGest 34

Representa¸c˜ao de Smiles

Os smiles tˆem uma componente informativa representando o facto de as datas e esfor¸cos do projecto estarem dentro ou n˜ao dos prazos previstos. H´a tamb´em a representa¸c˜ao do smile confuso que significa que um dos campos se encontra a null.

(52)

Cap´ıtulo 3. Projecto - Wiki4PGest 35

Build do Projecto

Para efectuar o build do projecto foi construido o ficheiro ”build.xml”para ser ex-ecutado pela ferramenta Ant. Este ficheiro ´e configurado de maneira a que sejam executadas um conjunto de opera¸c˜oes como build do c´odigo fonte Java, cria¸c˜ao do arquivo Jar de execu¸c˜ao da aplica¸c˜ao, gest˜ao de dependˆencias da biblioteca Java e descompactamento do m´odulo python do Wiki4PGest.

A estrutura do ficheiro build.xml encontra-se representado na figura 3.27.

(53)

Cap´ıtulo 3. Projecto - Wiki4PGest 36

Configura¸c˜ao do MediaWiki

O ficheiro LocalSettingsa.php incluido no package da plataforma MediaWiki, per-mite realizar algumas configura¸c˜oes relativamente `a instancia instalada. Foi necess´ario configur´a-lo de maneira a permitir o upload de ficheiros com formato PNG, e que n˜ao fosse poss´ıvel ao utilizador editar p´aginas geradas pelo Wiki4PGest.

(54)

Cap´ıtulo 3. Projecto - Wiki4PGest 37

3.5

Testes

`

A medida que as v´arias funcionalidades iam sendo implementadas, realizaram-se alguns testes unit´arios de forma a garantir as regras funcionais da aplica¸c˜ao. Como a realiza¸c˜ao destes testes n˜ao chegaram para garantir a total garantia de qualidade da aplica¸c˜ao, no final do desenvolvimento procedeu-se a uma sess˜ao de testes um pouco mais exaustiva em rela¸c˜ao aos valores e tratamentos dos dados apresentados pela aplica¸c˜ao, de forma a garantir a total fiabilidade e coerˆencia do produto final. Foi tamb´em durante esta fase que se consciencializou de que a aplica¸c˜ao demorava demasiado tempo a gerar todas as p´aginas de todos os projectos e tarefas. Com a implementa¸c˜ao da funcionalidade de controlo de redundˆancia, testou-se uma vez mais a aplica¸c˜ao no sentido de medir o seu tempo de execu¸c˜ao, que se traduziu em tempos aceit´aveis.

Como se pretendia que o Wiki4PGest n˜ao interferisse com o normal funcionamento do PGest, criou-se uma instˆancia da base de dados do PGest com dados de produ¸c˜ao, de maneira a que se pudesse executar os testes sobre dados de produ¸c˜ao, n˜ao inter-ferindo com o PGest, garantido assim o normal funcionamento do PGest durante a hora laboral.

Foram tamb´em efectuados testes de usabilidade com os utilizadores alvo, de maneira a obter um feedback e de angariar novas ideias e sugest˜oes para que fossem satisfeitas todas as necessidades do p´ublico alvo.

As sugest˜oes recebidas focaram-se mais em quest˜oes relacionadas com o design da interface. Foi sugerido a alternˆancia de cˆor nos campos das tabelas para se iden-tificar melhor cada um deles e algumas propriedades relacionadas com o pr´oprio layout como borders, labels, texto a bold e posi¸c˜oes de elementos nas p´aginas.

(55)

Cap´ıtulo 4

Conclus˜

ao

Neste cap´ıtulo faz-se uma conclus˜ao relativamente `a experiˆencia passada na real-iza¸c˜ao do projecto, e de fazer uma an´alise cr´ıtica a todo o processo envolvido e ao produto final. S˜ao tamb´em tiradas algumas ilac¸c˜oes relativamente `a continuidade a este projecto.

4.1

Resumo do trabalho desenvolvido

Nesta fase de inicia¸c˜ao `a integra¸c˜ao no mercado de trabalho e no mundo empresarial, a realiza¸c˜ao deste projecto traduziu-se num desafio pessoal que me permitiu testar todas as minhas capacidades e conhecimentos adquiridos durante a Licenciatura. O facto de o realizar numa empresa de desenvolvimento de software como institui¸c˜ao de acolhimento, e estar em contacto com v´arios colaboradores que lidam diariamente com o cliente e que se encontram integrados na sua equipa de suporte e manuten¸c˜ao, forneceu-me alguns conhecimentos relativamente `a pol´ıtica de neg´ocio e interac¸c˜ao com o cliente, embora o projecto n˜ao tenha sido desenvolvido para um cliente es-pec´ıfico da empresa. O facto de n˜ao estar incluido numa equipa numerosa tamb´em se revelou um aspecto importante, visto que exigiu um envolvimento por todas as etapas no processo de desenvolvimento do projecto. Para al´em do conhecimento t´ecnico adquirido e de ter explorado novas tecnologias na abordagem ao projecto, toda esta experiˆencia foi enriquecedora no sentido em que adquiri boa pr´aticas de desenvolvimento e outros conhecimentos t´ecnicos de outras tecnologias que descon-hecia, utilizadas na implementa¸c˜ao dos projectos desenvolvidos na empresa. Um dos factores motivadores na realiza¸c˜ao do projecto, ´e a sua utilidade que o projecto vai exercer na execu¸c˜ao de algumas tarefas no quotidiano dos colaboradores da empresa. Devo concluir assim que toda a experiˆencia passada neste projecto de est´agio teve um balan¸co bastante positivo.

(56)

Cap´ıtulo 4. Conclus˜ao 39

4.2

Revis˜

ao Cr´ıtica

A inten¸c˜ao inicial do projecto de desenvolver no ˆambito do Google, era bastante ambiciosa e interessante e traria algumas caracter´ısticas enriquecedoras `a aplica¸c˜ao. Pelos motivos apresentados no cap´ıtulo 3 deste documento chegou-se `a conclus˜ao que a API disponibilizada pelo Google Desktop n˜ao seria suficiente para solucionar o problema proposto neste projecto. Mas a mudan¸ca de abordagem do projecto acabou por ser bastante vantajosa, na medida em que conduziu o projecto de est´agio para um novo percurso, potenciando assim o trabalho de pesquisa no sentido de iden-tificar e estruturar uma nova solu¸c˜ao para o problema proposto. Para al´em do mais, a integra¸c˜ao com o MediaWiki permitiu gerar um reposit´orio de informa¸c˜ao estru-turada com informa¸c˜ao global de projectos.

Uma aspecto que contribuiu para o sucesso do projecto, foi o ´optimo acompan-hamento por parte da coordenadora de projecto e de alguns colaboradores da em-presa que me souberam ajudar em alguns pontos cruciais, tanto na fase de desen-volvimento, como em todo o per´ıodo de est´agio.

4.3

Trabalho Futuro

Como trabalho futuro, ´e necess´ario colocar em produ¸c˜ao o Wiki4PGest. Esta tarefa ter´a de ser feita fora da hora laboral para evitar que ocorra algum problema com a base de dados, impedindo assim que se possa trabalhar com o PGest durante a hora laboral da empresa. ´E tamb´em importante que se proceda `a configura¸c˜ao de um software de execu¸c˜ao agendada de instru¸c˜oes, para que a aplica¸c˜ao seja ex-ecutada automaticamente e diariamente sem qualquer interven¸c˜ao manual. Estas tarefas ainda n˜ao foram realizadas porque ainda n˜ao houve disponibilidade da parte dos colaboradores respons´aveis para testar a aplica¸c˜ao fora da hora laboral, e para disponibilizar uma m´aquina onde se possa instalar uma instˆancia do MediaWiki e integrar o Wiki4PGest com um software de execu¸c˜ao agendada para executar a aplica¸c˜ao periodicamente.

Outra caracter´ıstica que o Wiki4PGest possui ´e a capacidade de detectar algumas incoerˆencias nos dados obtidos do PGest, como por exemplo, datas de t´ermino de projectos anteriores `a respectiva data de in´ıcio do projecto. Chegou-se ent˜ao `a con-clus˜ao que devido `a existˆencia de algumas inconsistˆencias nos dados do PGest, que seria interessante como trabalho futuro, incrementar uma nova funcionalidade de alerta ou de ”logging”onde escreve-se em ficheiros estes casos de inconsistˆencia, per-mitindo assim que os gestores de projecto detectassem facilmente esta incoerˆencias, e que por si s´o o Wiki4PGest conseguisse apresentar a informa¸c˜ao corrigida nas p´aginas Wiki geradas.

(57)

Bibliografia

[1] http://desktop.google.com/ [2] http://www.mediawiki.org/ [3] http://www.google.com/enterprise/ [4] http://www.wikipedia.org/ [5] http://www-306.ibm.com/software/data/informix/ [6] http://en.wikipedia.org/wiki/Wikipedia:Creating a bot [7] http://www.jfree.org/jfreechart/ [8] Manual PGest 40

(58)

Apˆ

endice A

(59)

Apˆendice A. Calendariza¸c˜ao de Tarefas 42

Semana Tarefas

17/09 a 05/10 - Apresenta¸c˜ao e adapta¸c˜ao `a empresa. An´alise de Requisitos:

- Apresenta¸c˜ao e aproxima¸c˜ao ao problema proposto. - Defini¸c˜ao de funcionalidades e caracter´ısticas

da aplica¸c˜ao a desenvolver.

- Pesquisa de solu¸c˜oes Google para o problema proposto. - Experimenta¸c˜ao da ferramenta SDK e respectivas API’s do Google Desktop.

8/10 a 19/10 - Mudan¸ca do ˆambito do projecto alterando-o do Google para o MediaWiki.

- Revis˜ao de requisitos, funcionalidades e caracter´ısticas da aplica¸c˜ao.

- Pesquisa de informa¸c˜ao acerca do MediaWiki no sentido de perceber a sua arquitectura

e de arranjar uma solu¸c˜ao para o problema proposto. - Experimenta¸c˜ao da ferramenta

Python Wikipedia Robots Framework. 22/10 a 26/10 Desenho:

- Apresenta¸c˜ao do Modelo de dados Base de Dados do PGest. - Desenho da arquitectura do Wiki4PGest.

- Desenho da solu¸c˜ao proposta para o Wiki4PGest. - Elabora¸c˜ao do esbo¸co da UI do Wiki4PGest.

- Elabora¸c˜ao de um esbo¸co da estrutura¸c˜ao do c´odigo Java. - Elabora¸c˜ao de uma Interface Java de todos os m´etodos de interroga¸c˜ao `a base de dados do PGest.

29/10 a 09/11 - Elabora¸c˜ao do relat´orio preliminar. 12/11 a 07/03 Implementa¸c˜ao:

- Estrutura¸c˜ao do c´odigo e implementa¸c˜ao preliminar das estruturas de dados.

- Implementa¸c˜ao do prot´otipo do Wiki4PGest em toda a sua extens˜ao.

Testes Unit´arios:

- Realiza¸c˜ao de testes unit´arios a cada funcionalidade implementada.

- Correc¸c˜ao de erros. An´alise de Requisitos:

- Revis˜ao dos requisitos da aplica¸c˜ao e introdu¸c˜ao de novas funcionalidades.

Implementa¸c˜ao:

- Altera¸c˜oes de acordo com a revis˜ao dos Requisitos. - Introdu¸c˜ao das novas funcionalidades.

- Altera¸c˜oes no PHP do MediaWiki de integra¸c˜ao do Wiki4PGest.

(60)

Apˆendice A. Calendariza¸c˜ao de Tarefas 43

Semana Tarefas

Testes:

10/03 a 21/03 - Testes ao prot´otipo.

- Confirma¸c˜ao da coerˆencia dos resultados apresentados pela aplica¸c˜ao.

- Correc¸c˜ao de erros. 24/03 a 30/05 - Implementa¸c˜ao:

- Implementa¸c˜ao do algoritmo de actualiza¸c˜ao de p´aginas do Wiki4PGest.

Testes:

- Testes ao algoritmo. Finaliza¸c˜ao:

- Ajustes Finais.

- Prepara¸c˜ao para produ¸c˜ao. 12/05 a 13/06 - Elabora¸c˜ao do relat´orio final.

(61)

Apˆ

endice B

odigo de uma p´

agina Wiki

Figura B.1: C´odigo de uma p´agina Wiki

Imagem

Figura 2.1: Carteira Clientes EF
Figura 3.1: Exemplos de plug-ins do Google Desktop
Figura 3.2: Google Search Appliance
Figura 3.3: Arquitectura Wiki4PGest
+7

Referências

Documentos relacionados

(a) Para cada um dos trˆ es m´ etodos de tonaliza¸c˜ ao (shading) vistos em aula, responda: 1 - O que ´ e interpolado nos v´ ertices, nas arestas e nas faces, 2 - qual o efeito

At´ e dois grupos podem escolher o mesmo tema, as devem executar o projeto separadamente.. Grupos podem ser de 2 ou

a) O desempenho dos discentes que usam os instrumentos de apoio ao ensino e aprendizagem de algoritmos e programação de computadores selecionados superará o

[r]

O conceito de colonialidade, a obra de Frantz Fanon (1952;1961) e os princípios metodológicos da psicanálise concreta nos permitiram uma base que orientou

O ângulo de repouso aumenta com a maior quantidade de impurezas finas e a porosidade intergranular aumenta com a presença de impurezas grossas; a massa específica aparente é

Combinados, o rádio portátil APX 8000XE habilitado para todas bandas e o microfone falante remoto XE500 criam uma solução de missão crítica incomparável, projetada para o pessoal

• Não há inflação de alimentos, há inflação, causada por choques cambiais, auxílio emergencial, problemas fiscais e má gestão de estoques públicos;. • O Brasil precisa