Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
21 a 24 de julho de 2010
Capa e diagramação:
Impressão e Acabamento:
Lupagraph
Tiragem:
1.000 exemplares
Prefácio
X Workshop de Software Livre - WSL 2009-06-15
10º Fórum Internacional Software Livre - FISL 2009
(10.: 2009 junho: Porto Alegre, RS)
ISBN 85-89344-50-9
Coordenação Geral
Associação Software Livre.org
6 Comissão Organizadora do 11º Fórum Internacional Software Livre 7
XI Worshop sobre Software Livre
GRUPOS DE TRABALHOS:
GT Captação
Ricardo Fritsch
GT Caravanas
Junior Goergen
GT Comunicação
Thaís Rucker
Luís Henrique Silveira
GT Cultura
Lucas Alberto Santos
GT Feminino Livre
Virginia Silva Ferreira
GT Grupos de Usuários
Paloma Costa
Oscar Luz
GT Infra-estrutura
Thomas Tschoepke Soares
GT Mobilização
Felipe Santos
José Francisco Nunes Fernandez
GT Temário
Carlos Machado Oliveira
Pablo Lorenzzonni
GT TV Software Livre
Fabrício Solagna
GT Voluntários
Maurício Portal
GT Web
Airton Jordani Jardim filho
8 Associação Software Livre.Org XI Workshop de Software Livre 9
XI Worshop sobre Software Livre
Estes anais contêm os artigos selecionados e que serão apresentados nas sessões
técnicas do WSL 2010, os quais, com certeza, representam uma amostra significativa da pes-
quisa atualmente em desenvolvimento em software livre.
Cristiano André da Costa (Unisinos)
Coordenador Geral
Presidente: José Carlos Maldonado (ICMC-USP) 16 Integração Contínua com Software Livre: Um relato de implantação na Fun-
Vice-Presidente: Marcelo Walter (UFRGS) dação de Amparo a Pesquisa do Estado de Alagoas - FAPEAL – Felipe Queiroz
(UFPE), Leonardo Oliveira (UFPE)
22 Processo Demoiselle: um processo livre para desenvolvimento de software
Diretorias para e-Gov – Viviane Malheiros (SERPRO, USP/ICMC), Ronaldo Agra (Serpro), Alisson
Andrade (SERPRO, UNB)
Administrativa: Luciano Paschoal Gaspary (UFRGS)
28 Software Livre como Objetos de Aprendizagem Generalizáveis do Projeto
Finanças: Paulo Cesar Masiero (ICMC-USP)
CONDIGITAL – Alexandre Direne (UFPR), Diego Marczal (UFPR), Jonatas Teixeira (UFPR),
Eventos e Comissões Especiais: Lisandro Zambenedetti Granville
Felipe Moreschi (UFPR), Derik Silva (UFPR), Danilo Picolotto (UFPR), Fernando Coelho
(UFRGS)
(UFPR), Jorge Salvi (UFPR)
Educação: Mirella M. Moro (UFMG)
Publicações: Karin Breitman (PUC-Rio) 34 Uso de software livre para gestão do serviço de atendimento ao usuário de TI
Planejamento e Programas Especiais: Ana Carolina Salgado (UFPE) no INMETRO – Eduardo Abreu (Apex-Brasil), Sandra Dias (INMETRO), Luiz C. Dalcorno
Secretarias Regionais: Thais Vasconcelos Batista (UFRN) (INMETRO), Fabiano Lanini (INMETRO), Angela Albarello (ESAF)
Divulgação e Marketing: Altigran Soares da Silva (UFAM)
41 Sessão II - Banco de Dados
Conselho
42 Implementing a modern API for CDS/ISIS, a classic semistructured NoSQL da-
XX Sessão VI - Sistemas Baseados na Web 28 Software Livre como Objetos de Aprendizagem Genera-
XX Sessão VII - Sistemas Baseados na Web lizáveis do Projeto CONDIGITAL
Integração Contínua com Software Livre: Um relato de implantação na Fundação de Amparo a Pesquisa do Estado de Alagoas - FAPEAL
Paralelo a isso, o alto grau de maturidade alcançado pelas ferramentas livres nos úl-
Integração Contínua com Software Livre: Um timos anos, principalmente aquelas que auxiliam os ciclos de desenvolvimento de software,
relato de implantação na Fundação de Amparo vem permitindo sua adoção nos mais diferentes contextos, inclusive servindo como base para
a Pesquisa do Estado de Alagoas – FAPEAL a estratégia de IC.
Portanto, este trabalho relata o processo de adoção da prática de IC utilizando software
livre pelo time de desenvolvimento da Fundação de Amparo a Pesquisa do Estado de Alagoas
Felipe B. de Queiroz1, Leonardo F. M. de Oliveira1
- FAPEAL, procurando abordar seus conceitos e apresentar, qualitativamente, os benefícios de
1
Fundação de Amparo a Pesquisa do Estado de Alagoas - FAPEAL sua utilização, objetivando contribuir com estudos empíricos relacionados à produtividade de
CEP 57.020-330 – Maceió – AL – Brasil equipes de desenvolvimento de software.
{felipe.buarque, leonardo.fernandes}@fapeal.br
2. Integração Contínua
ABSTRACT. The task of integrating artifacts is inherent in the process of software de- A Integração Contínua é definida como um processo que realiza as tarefas de construção, teste,
velopment, where all parts are being worked by different team members are put together análise e deploy de uma aplicação, para assegurar que a mesma funcione corretamente e siga
and a check is made whether the system is functioning according to requirements. Therefore, as melhores práticas [Kawalerowics and Berntson 2010]. Todo esse processo é executado a
Continuous Integration emerged as a strategy to attach the artifacts used in the software de- cada modificação no código fonte e provê um feedback imediato ao time de desenvolvimento,
velopment process constantly and in short cycles. This work aims to demonstrate the process como será descrito em mais detalhes na seção 4.
of adopting the IC practice using open source software in the Fundação de Amparo a Pesquisa Reunindo o que foi escrito por outros autores ([Fowler 2006], [Duval et al. 2007] e [Ka-
do Estado de Alagoas - FAPEAL, approaching its concepts and demonstrating the benefits of walerowics and Berntson 2010]), esta definição enfatiza que o processo de IC não se restringe
their use. apenas a compilar sua aplicação, mas sim, junto a isso, rodar os testes, os analizadores e dis-
ponibilizar o software, de maneira que todo este processo seja automatizado e que ao seu final,
RESUMO. A tarefa de integrar artefatos é inerente ao processo de desenvolvimento um mecanismo de feedback informe à equipe o status do projeto. É por isso que muitos autores
de software, onde todas as partes que estão sendo trabalhadas pelos diferentes membros da afirmam que a IC é o “gatilho” para outras definições, como Continuous Compilation [Saff and
equipe são colocadas juntas e é feita uma verificação se o sistema está funcional, conforme Ernst 2004], Continuous Building [Kim et al. 2008], Continuous Testing [Saff and Ernst 2004],
os requisitos. Visto isso, a Integração Contínua surge como uma estratégia de unir os artefa- Continuous Deployment [Duval et al. 2007], dentre outras.
tos usados no processo de desenvolvimento de software de maneira constante e em ciclos De acordo com [Duval et al. 2007], num nível mais alto, a adoção de IC numa equipe de
curtos. Assim, este trabalho tem por objetivo demonstrar o processo de adoção da prática de desenvolvimento traz os seguintes valores:
IC utilizando software livre na Fundação de Amparo a Pesquisa do Estado de Alagoas - FAPEAL,
abordando seus conceitos e demonstrando os benefícios de sua utilização. • Redução de riscos: Dado que a integração, execução dos testes e inspeções são
feitas várias vezes ao dia, existe grande chance de descobrir um erro assim que o
mesmo é introduzido;
1. Introdução • Redução de processos manuais repetitivos: Atividades como, compilação de
código, integração de banco de dados, testar, inspecionar, disponibilizar e feedba-
O processo de integrar software não é um problema novo [Duval et al. 2007]. No processo de de- ck são encorajadas a serem automatizadas o que torna cada tarefa muito menos
senvolvimento de software, toda equipe, com duas ou mais pessoas, precisa lidar com a tarefa de propensa a erros;
integrar seus artefatos. À medida que a complexidade do projeto aumenta, há uma grande neces- • Geração de software “implantável” a qualquer momento: Dado que o proces-
sidade de tais artefatos serem integrados com uma certa frequência, afim de manter os mesmos so roda da mesma maneira, em todo momento, ao final do ciclo da IC é gerado um
atualizados em relação ao projeto e assegurar que os componentes trabalhem juntos e de maneira software funcional. O que ocorre a cada pequena mudança em algum artefato;
funcional. Visto isso, a falta de automação e adiamento para o final do ciclo de desenvolvimento o • Permite melhor visibilidade do projeto: A redução de suposições sobre o an-
deixa passivo de alguns problemas, como o esquecimento por parte do responsável pela integra- damento do projeto ocorre de maneira natural, visto que a IC provê informações a
ção da inclusão de algum artefato, ou descobrir que dois desenvolvedores usaram versões diferen- todo momento sobre recentes construções, métricas de qualidade entre outras;
tes de bibliotecas de terceiros o que acarretou em erro no momento da integração. • Estabelece maior confiança da equipe no produto: Em toda construção, a
Assim, a Integração Contínua (IC) surge como uma estratégia de unir os artefatos utili- equipe saberá que testes estarão rodando sobre o software e analisadores verifica-
zados no processo de desenvolvimento de software de maneira constante e em ciclos curtos, rão aderência aos padrões estabelecidos, o que encoraja o time a realizar altera-
permitindo aos desenvolvedores a habilidade de realizar alterações no código, sabendo que, ções sempre que necessárias.
18 Levando em consideração tais valores, observa-se que a adoção do processo de IC • Sistema de controle de versão (SCV): Seu propósito é gerenciar mudanças 19
complementa outras práticas do desenvolvimento de software, como a aderência aos padrões no código fonte e outros artefatos (como documentação), provendo um ponto de
XI Worshop sobre Software Livre
Integração Contínua com Software Livre: Um relato de implantação na Fundação de Amparo a Pesquisa do Estado de Alagoas - FAPEAL
de código, refactoring e releases curtos, não importando se o projeto utiliza RUP [Sommerville acesso único de acesso controlado ao repositório. Como se tratava de uma equipe
2007], XP [Teles 2004], SCRUM [Schwaber 2001], Crystal [Cockburn 2009], ou qualquer outra de desenvolvimento pequena e com experiência prévia na ferramenta, o SCV esco-
metodologia. lhido foi o Subversion (SVN) [Collins-Sussman et al. 2008].
• Servidor de IC: Funciona como um gerenciador de atividades no processo de IC.
Começando pela verificação de mudanças no repositório de controle de versão e re-
3. Método de pesquisa cuperação dos artefatos, o servidor dispara scripts, como um script de Construção, e
tarefas numa ordem preestabelecida. Devido a facilidade de configuração, a ferramen-
Este trabalho utilizou o método de pesquisa-ação, o qual é um método intervencionista, que ta escolhida para tal tarefa foi o Hudson, o qual possui integração com diversas ferra-
permite ao pesquisador testar hipóteses sobre o fenômeno de interesse implementando e aces- mentas de teste e feedback, e contém uma imensa gama de plugins disponíveis.
sando as mudanças no cenário real [Lindgren et al. 2004]. • Scripts de Construção: Também chamado de Gerenciador de Construção, consti-
Conforme [Stringer 1996], a pesquisa-ação compreende uma rotina composta por três tui de um simples script, ou conjunto do mesmo, que é usado para compilar, testar,
ações principais: observar, para reunir informações e construir um cenário; pensar, para ex- inspecionar e disponibilizar o software de maneira automatizada. Não foi utilizada
plorar, analisar e interpretar os fatos; e agir, implementando e avaliando as ações. Tais ações uma única ferramenta para esta fase do processo (como o Ant), mas sim diversos
se refletem no contexto da FAPEAL, onde se fez necessário observar o ambiente e perceber os scripts escritos em Python, que supriram as necessidades do projeto.
problemas reais relacionados ao desenvolvimento de software, de modo a buscar e implantar • Mecanismos de feedback: Não existe um mecanismo padrão para oferecer tal
soluções, com o foco essencial de investigar a adoção da prática de IC utilizando ferramentas recurso. Pode-se utilizar e-mails, SMS, Twitter, ou mesmo dispositivos físicos como
livres pela equipe de desenvolvimento da Fundação. sirenes. Devido a integração do Hudson com o servidor de e-mail, mensagens so-
A escolha dos sujeitos se fez de maneira intencional, estando constituída de 5 pessoas, bre os status das construções, relatórios de inspeção e resultado dos testes eram
sendo 4 (quatro) desenvolvedores e 1 (um) designer, lotadas na Unidade Gestora de Tecnolo- enviadas ao final de cada integração.
gia da Informação (UGTI) da FAPEAL, representando a equipe que utilizou as práticas de IC no • Ferramentas de Teste: Não necessariamente uma ferramenta de IC, mas de
desenvolvimento de 1 (um) projeto. Assim, os dados primários da pesquisa foram coletados extrema importância para qualquer sistema. Para o projeto realizado na Fundação,
por meio de exame dos artefatos do projeto, que é um método no qual o pesquisador examina foram automatizados os testes unitários, com o uso de DocTests e PyUnit, e os tes-
documentos, materiais e/ou artefatos, e registra os dados sobre instrumentos previamente pre- tes funcionais, com o uso de um componente do framework web utilizado.
parados. Por meio de exame dos artefatos do projeto, pôde-se constatar a melhoria ou não, na • Ferramentas de Análise de Código: Automatizar inspeção de código, para ve-
qualidade do produto resultante e na velocidade de desenvolvimento imposta no projeto para rificar, por exemplo, aderência as normas pré-estabelecidas, a complexidade ci-
alcançar o produto final. clomática, modularidade, duplicação de código entre outras. Como a linguagem
de programação utilizada no projeto foi Python, o Pylint se mostrou um recurso
interessante para a análise estática de código, verificando a aderência aos padrões
4. Implantação especificados pela PEP0008 [Rossum 2001].
Durante um período de 04 meses (Outubro de 2009 a Janeiro de 2010), buscou-se implantar A tabela 1 apresenta as ferramentas utilizadas no ambiente de desenvolvimento.
algumas técnicas de IC visando prover maior velocidade à equipe de desenvolvimento e maior
qualidade nos produtos apresentados, utilizando como base o projeto de um sistema para con- Tabela 1. Ferramental utilizado no ambiente de desenvolvimento
trole financeiro da Fundação. Os membros da equipe de desenvolvimento já adotavam práticas Sistema de controle de versão Subversion (SVN) subversion.apache.org
de algumas metodologias de desenvolvimento (Scrum e XP) como código coletivo, programa-
Servidor de IC Hudson hudson-ci.org
ção em par, reuniões diárias, releases curtas (02 semanas) etc., e procuraram adaptar-se para
Scripts de Construção Scripts Python python.org
a adoção de mais uma prática no dia-a-dia.
Mecanismos de feedback E-mail www.postfix.org
codificação, os relatórios gerados após cada integração mostrariam o problema. Isso gerou se refere à velocidade e qualidade da entrega do produto final do projeto.
XI Worshop sobre Software Livre
Integração Contínua com Software Livre: Um relato de implantação na Fundação de Amparo a Pesquisa do Estado de Alagoas - FAPEAL
um certo desconforto por parte dos desenvolvedores no início do projeto, pois cada um Vale a pena ressaltar que a utilização de ferramentas livres na estratégia de IC se fez de
possuía um estilo próprio de codificar. No entanto, o número reduzido de pessoas e a práti- suma importância, pois além de proporcionar as vantagens intrínsecas ao software livre, como
ca de programação em par fez com que, rapidamente, a equipe se adequasse aos padrões a redução de custos e o apoio ativo da comunidade, a utilização de ferramentas livres agrega
exigidos (PEP0008). ainda mais aos valores que a IC traz aos projetos, aumentando o grau de confiança da equipe
Assim, após inserir um novo trecho de código ou alterar algum existente, os desenvol- sobre o produto final desenvolvido.
vedores executavam os scripts de construção (compilação, teste e inspeção) localmente. Caso Como trabalho futuro, pretende-se continuar com a utilização da prática de IC no de-
não ocorressem problemas durante a construção local, cada desenvolvedor submetia os arte- senvolvimento de outros projetos internos à Fundação, a fim de se obter uma análise mais
fatos inseridos/modificados/excluídos para o SCV. Em períodos pré-determinados, o servidor de detalhada dos resultados de sua adoção a partir do exame de um maior número de artefatos e
IC, utilizando o auxílio da ferramenta cron, verificava se havia ocorrido alguma alteração no métricas de software para extração de dados mais formais.
projeto. Tal período foi determinado calculando-se o tempo médio do intervalo entre commits
ao SCV, que era em torno de 20 minutos. Caso houvesse modificações, o servidor recuperava
todos os artefatos do projeto e iniciava a execução dos scripts de construção, dessa vez com Referências
todos os componentes integrados. Ao final do processo, o servidor de IC enviava um e-mail com
informações sobre o status da construção a todos os desenvolvedores envolvidos no projeto, Cockburn, A. (2009). Crystal Clear: A Human-Powered Methodology for Small Teams. Addison-
deixando-os cientes do produto “final” obtido. Wesley, 1 edition.
Collins-Sussman, B., Pilato, C. M., and Fitzpatrick, B. W. (2008). Version control with subversion,
volume 4. O’Reilly Media, Inc.
5. Resultados Duval, P. M., Matyas, S., and Glover, A. (2007). Continuous Integration, volume 26. Addison-
Wesley.
No projeto realizado pela equipe de desenvolvimento da FAPEAL, vários benefícios foram encon- Fowler, M. (2006). Continuous integration.
trados com a adoção da prática de IC, dos quais podemos citar: Kawalerowics, M. and Berntson, C. (2010). Continuous Integration in .NET. Manning.
Kim, S., Park, S., Yun, J., and Lee, Y. (2008). Automated Continuous Integration of Component-
1. Maior confiabilidade na realização de alterações no código, dado a constante ins- Based Software: An Industrial Experience. 2008 23rd IEEE/ACM International Conference on
peção e testes realizados neste artefato; Automated Software Engineering, pages 423–426.
2. Maior visibilidade do projeto como um todo, visto que os relatórios e a documen- Lindgren, R., Henfridsson, O., and Schultze, U. (2004). Design principles for competence man-
tação do projeto passaram a ser gerados automaticamente no processo de cons- agement systems: A synthesis of an action research study. MIS QUARTERLY, 28(3):435–472.
trução através de ferramentas como o Epydoc, Cobertura e plugins do SVN, como Rossum, G. V. (2001). Style guide for python code. http://www.python.org/dev/peps/pep-0008/.
o WebSVN e StatSVN; Acessado em: Dezembro de 2009.
3. Ganho de produtividade, dado que algumas tarefas manuais passaram a ser au- Saff, D. and Ernst, M. (2004). An experimental evaluation of continuous testing during develop-
tomatizadas, como a inserção de dados de teste na base de dados e o deploy do ment. In Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing
projeto no ambiente de homologação, permitindo que os desenvolvedores se preo- and analysis, page 85. ACM.
cupassem com as regras do negócio, de fato; Schwaber, K. (2001). Agile Software Development with Scrum. Series in Agile Software Develop-
4. Aumento da qualidade do código, devido a presença de analizadores estáticos; ment. Prentice Hall, 2 edition.
5. Maior estabilidade nos releases gerados, visto que os mesmos só eram entregues Sommerville, I. (2007). Engenharia de Software. Tradução de Selma Shin Shimizu Melnikoff. Ad-
caso se apresentassem completamente funcionais. dison Wesley, São Paulo, 8 edition.
Stringer, E. T. (1996). Action Research: A Handbook for Practitioners. Sage.
Apesar dos benefícios citados acima, algumas dificuldades foram encontradas durante Teles, V. M. (2004). Extreme Programming: Aprenda como encantar seus usuários desenvolven-
as fases de adoção e utilização das práticas de IC, como a definição de um modelo estrutural do software com agilidade e alta qualidade. Novatec.
que se adequasse a realidade do projeto, o processo de configuração inicial das ferramentas
utilizadas e a grande quantidade de construções que falharam no início do projeto.
6. Conclusões
Diante do que foi apresentado com o desenvolvimento deste trabalho, ficaram claras as vanta-
gens obtidas pela adoção da prática IC no desenvolvimento de software, pois esta se apresen-
22 meio, por exemplo, do reúso de software e do uso de técnicas ágeis; e (ii) a melhoria da quali- 23
3. O Processo Demoiselle
1. Introdução
O Processo Demoiselle é um processo livre para desenvolvimento de software para o governo
A utilização de um processo de desenvolvimento de software possibilita gerir melhor um pro- com o uso do Framework Demoiselle. Ele pode ser livremente utilizado, adaptado e redistribuí-
jeto de desenvolvimento de sistemas. Isso é possível porque os processos de desenvolvimento do. Sua construção está firmada sobre 5 princípios: simplicidade; liberdade; iteratividade; foco
orientam a equipe no cumprimento das metas do projeto. Adicionalmente, as discussões sobre em testes e arquitetura de software; e alinhamento com o Framework Demoiselle.
software e processos livres vêm ganhando espaço no mercado e na academia. A definição de A simplicidade do Processo Demoiselle é um princípio que se traduz em documentação
um processo livre pode beneficiar empresas e comunidades de desenvolvimento de software, e artefatos simples e suficientes para o desenvolvimento de um software com qualidade. Trata-
apresentando-se como uma forma mais barata de incorporar melhorias ao desenvolvimento. se, portanto, de produzir apenas a documentação e os artefatos necessários para atender as
Em paralelo a essas discussões, vários autores defendem que a qualidade do processo expectativas do cliente. O foco está nas informações que devem ser armazenadas para uso
de desenvolvimento pode favorecer a qualidade do produto final [Humphrey 1989]. Durante futuro e não no formato da documentação.
os últimos anos vários esforços foram concentrados na definição e melhoria desse tipo de A liberdade do Processo Demoiselle refere-se à possibilidade de uso, adaptação e redistri-
processo; seja em metodologias mais focadas na agilidade como, por exemplo, o XP (Extreme buição deste sem restrições. Assim, qualquer pessoa ou grupo de pessoas que tiver interesse em
Programming) [Beck 1999], seja em processos mais formais, como é o caso do RUP (Rational usar, adaptar ou redistribuir o Processo Demoiselle pode fazê-lo sem se preocupar com restrições
Unified Process) [IBM 2010]. Mais recentemente trabalhos que propõem o balanceamento legais de autoria. Essa característica permite ao processo evoluir vislumbrando diferentes pers-
entre ambas as abordagens têm sido publicados, a exemplo de [Lindvall 2002]. pectivas e necessidades, e ser enriquecido através das experiências de seus colaboradores.
Alinhado com a diretriz de governo para ampliar o uso de software livre foi criado o Pro- O Processo Demoiselle indica o desenvolvimento iterativo, ou seja, o seu ciclo de vida é
jeto Demoiselle [Serpro 2010], cujo objetivo é promover: (i) o aumento da produtividade, por particionado em intervalos de tempo (iterações), normalmente regulares e pequenos, que têm
24 por objetivo o desenvolvimento de incrementos de software integráveis. Essa prática visa uma 25
maior facilidade de integração de código de software e validação dos artefatos por parte do
XI Worshop sobre Software Livre
O Processo Demoiselle mescla métodos ágeis com técnicas de processos mais Uma disciplina consiste de um conjunto de atividades que têm em comum o relacio-
formais, como por exemplo o Processo Unificado, balanceando ambas as abordagens. namento com uma área específica de conhecimento. A versão inicial do Processo Demoiselle
A estrutura e o ciclo de vida do Processo Demoiselle são apresentados na Figura 1. apresenta 4 disciplinas: modelagem, implementação, testes e gestão de projetos. As atividades
O ciclo de vida do Processo Demoiselle está dividido em fases. São elas: Concepção, relacionadas com essas disciplinas são realizadas ao longo das iterações de cada fase, podendo
Análise e Projeto, Construção e Encerramento. À medida que o projeto avança nas fases, as in- elas estar presentes em uma ou mais fases do processo. Além dessas disciplinas, atualmente a
certezas e, consequentemente, os riscos diminuem. Por outro lado, o valor agregado do projeto comunidade está desenvolvendo a disciplina de Gestão de Configuração, a qual será publicada
aumenta para o cliente simultaneamente. na próxima versão do processo, e a próxima prevista é a de licenciamento.
Por ser um processo voltado para o desenvolvimento de software para o governo, é pos- A disciplina de Modelagem no Processo Demoiselle trata do levantamento das necessi-
sível que os projetos guiados pelo Processo Demoiselle se caracterizem por não possuir clientes dades e expectativas do cliente e do mapeamento destas em decisões arquiteturais do sistema
com alta disponibilidade. Por outro lado as metodologias ágeis indicam que a aproximação do de informação a ser desenvolvido. Essa disciplina é composta, portanto, por atividades de aná-
cliente durante o desenvolvimento do projeto é um grande benefício para o desenvolvimento do lise e projeto de um sistema de informação.
software. Para resolver esse problema, o Processo Demoiselle utiliza a alternância de iterações de Já a disciplina de Implementação trata da construção do sistema de informação especi-
desenvolvimento com iterações de validação [Ambler 2010b]. ficado pelo cliente e tem foco no desenvolvimento iterativo e incremental. Suas atividades são
distribuídas em iterações, nas quais o sistema é desenvolvido e evoluído em funcionalidades
e estabilidade.
1
O meta-modelo SPEM (Software & Systems Process Engineering Meta-Model) [OMG 2010] é um conjunto de conceitos Outra disciplina trabalhada no Processo Demoiselle que contribui para a qualidade do
e elementos, criados pelo OMG (Object Management Group), para representar processos de desenvolvimento de
sistema produzido é a disciplina de Testes. Nesta disciplina é definido o conjunto de atividades
sistemas de informação.
2
http://www.eclipse.org/epf/composer_dev_guide/ necessárias para o planejamento, o projeto e a execução dos testes do sistema. Essas ativida-
26 des buscam assegurar que o produto gerado seja confiável e que corresponda aos requisitos no desenvolvimento para o governo. Além disso, a comunidade começa a discutir atividades 27
solicitados pelo cliente. relacionadas com a definição de licenças de produto para as aplicações do governo.
XI Worshop sobre Software Livre
4. Comunidade Demoiselle
Referências
A construção do Projeto Demoiselle é fundamentada nos princípios da filosofia de liberdade da
comunidade de software livre. Por esse motivo, todos os seus subprojetos, inclusive o Processo W. Humphrey (1989), Managing the software process, Addison Wesley Longman Publishing .
Demoiselle, podem ser usados, adaptados e redistribuídos segundo licenças livres, e contam K. Beck (1999). Embracing change with extreme programming. Em IEEE Journal or Magazine,
com a contribuição da comunidade interessada. Assim, além de consultar, utilizar, adaptar e v. 32, p. 70–77.
aprender com o projeto, a comunidade pode contribuir para sua evolução sugerindo melhorias IBM (2010), “Rational Unified Process”, http://www-306.ibm.com/software/awdtools/rup/, Fever-
e participando das discussões sobre o projeto. eiro.
No caso específico do Processo Demoiselle, a comunidade também pode participar re- M. Lindvall (2002), Agile Software Development, Addison Wesley.
portando uma inconsistência ou editando diretamente o processo, ajudando na documentação, Serpro (2010), “Projeto Demoiselle”, http:// demoiselle.sourceforge.net/, Abril. SLTI/MP (2010),
traduzindo, ou, simplesmente, relatando sua experiência de uso. “e-PING - Padrões de Interoperabilidade de Governo Eletrônico”, http://www.governoeletroni-
A participação da comunidade é extremamente importante, uma vez que as informa- co.gov.br/acoes-e-projetos/e-ping-padroes-deinteroperabilidade, Abril.
ções fornecidas por ela podem direcionar o desenvolvimento de um processo mais estável e S. W. Ambler (2010a), “Introduction to Test Driven Design (TDD)”, http://www.agiledata.org/
maduro. Para facilitar essa participação, foi criado o ambiente de colaboração que está dispo- essays/tdd.html, Maio.
nível no sítio http://demoiselle.sourceforge.net. A partir desse ambiente é possível acessar os Eclipse Foundation (2010), “OpenUP”, http://epf.eclipse.org/wikis/openup/, Maio.
arquivos do “código do processo”, submeter uma proposta de melhoria, participar de listas de OMG (2010), “SPEM - Software process engineering meta-model, version 2.0”, http://www.omg.
discussão e saber das últimas notícias. org/technology/documents/formal/spem.htm, Abril.
S. W. Ambler (2010b), “The Agile Unified Process”, http://www.ambysoft.com/unifiedprocess/
agileUP.html, Maio.
5. Conclusão e Trabalhos Futuros
Este artigo apresentou o Processo Demoiselle, que é um processo livre que busca atender às es-
pecificidades do governo no que diz respeito ao desenvolvimento de aplicações Web para a Ad-
ministração Pública Direta e Indireta. Uma dessas especificidades é a orientação do governo em
relação ao uso de software livre pelos órgãos. Assim, o Processo Demoiselle define atividades
que têm o objetivo de (i) aumentar a produtividade e a qualidade no desenvolvimento dessas
aplicações, utilizando-se de técnicas e conceitos de métodos ágeis, como o desenvolvimento
orientado a testes e o reuso de componentes, e (ii) de orientar o desenvolvimento de soluções
livres, que inclui questões como definição da licença do produto.
O Processo Demoiselle faz parte do Projeto Demoiselle. Dentro desse projeto, o subpro-
jeto Framework Demoiselle define arquitetura, componentes e tecnologias para o desenvolvi-
mento das aplicações. Como um de seus princípios, o Processo Demoiselle se integra com o
Framework Demoiselle no sentido de orientar os desenvolvedores na utilização da arquitetura
e na escolha dos componentes do framework adequados à sua solução.
Atualmente, a comunidade do Processo Demoiselle está desenvolvendo a nova discipli-
na de Gestão de Configuração. O desafio dessa disciplina é integrar desenvolvimento ágil de
software livre com as necessidades mais formais de controle de configuração de sistemas que
serão mantidos por vários anos seguidos e por empresas diferentes, como é possível acontecer
28 ou trigonométricas, com exemplos sobre projeções de sombras e movimento de planetas no 29
espaço; (d) matemática financeira, com exemplos de jogos e desafios dependentes do cálculo
XI Worshop sobre Software Livre
2. Hipóteses simplificadoras
Resumo. O objeto central deste projeto de pesquisa e desenvolvimento é de utilizar o
estado-da-arte em termos de Tecnologia Educacional baseada em Software Livre e suas áreas
Ainsworth aponta cinco fatores que devem ser considerados no projeto de um OA com múltiplas
associadas para desenvolver novos Objetos de Aprendizagem e dar manutenção para as ferra-
representações externas. São eles: (a) o número de representações; (b) a maneira como a in-
mentas genéricas responsáveis pelo apoio computacional ao projeto nacional CONDIGITAL para
formação está distribuída; (c) a forma das representações; (d) a sequência das representações;
escolas públicas brasileiras que atuam no nível fundamental médio. A iniciativa é conduzida sob
(e) o suporte para a tradução entre as representações. Ao projetarmos um sistema baseado em
a forma de convênios entre o MEC e membros de parceria
múltiplas representações externas, é preciso tomar decisões quanto a cada um desses fatores,
pois essas decisões terão impacto pedagógico.
Há basicamente quatro tarefas cognitivas envolvidas na manipulação de representa-
1. Introdução ções externas por parte de um aprendiz [Ainsworth, 2006]: (1) ele deve entender a forma da
representação; (2) cria intuitivamente a relação entre a representação e o domínio representa-
O presente trabalho encontra-se inserido no projeto CONDIGITAL do grupo do estado do Paraná.
do; (3) escolhe uma representação apropriada entre várias disponíveis; (4) constrói uma nova
Este grupo é financiado pelo Fundo Nacional de Desenvolvimento da Educação (FNDE) por meio
representação apropriada se for requisitada. Entender a forma de uma representação não é um
do Edital 001/07 MEC/MCT. O projeto é uma iniciativa da Secretaria de Educação a Distância
trabalho simples, pois envolve saber como a informação está codificada e quais operadores
(SEED) do Ministério da Educação (MEC) e do Ministério da Ciência e Tecnologia (MCT).
pode-se aplicar a essa representação para manipular a informação que ela codifica. Por exem-
Na Universidade Federal do Paraná (UFPR), este projeto é realizado pelo C3SL (Centro
plo, em um gráfico cartesiano de uma função, a maneira de encontrar máximos e mínimos se
de Computação Científica e Software Livre) em parceria com o Instituto de Tecnologia para
constitui em operadores para esse tipo de representação [Guizzadri et alli, 2003].
o Desenvolvimento (LACTEC), o Centro de Excelência em tecnologia Educacional do Paraná
A atenção aos operadores é fundamental, pois não é incomum operadores para um tipo
(CETEPAR) e a Universidade Estadual de Londrina (UEL). Um de seus objetivos principais é de
de representação serem usados incongruentemente em representações de outro tipo. Quando
contribuir para a melhoria e a modernização dos processos de ensino e aprendizagem da área
aprendizes são interpelados para selecionar um gráfico de velocidade versus tempo que repre-
de Matemática na rede de escolas públicas (e mesmo privadas).
senta um ciclista subindo e depois descendo um morro, eles deveriam escolher um gráfico com
Neste projeto estão sendo desenvolvidos quatro Objetos de Aprendizagem (OA), como
o formato de U, mas geralmente eles optam por um gráfico com a curvatura invertida (i.e., com
Software Livre para apoiar o ensino de matemática do nível médio. Os OA devem ser utilizados
a aparência do próprio morro). Nesses casos, operadores sobre figuras estão sendo usados er-
para apoiar atividades laboratoriais nos seguintes domínios: (a) funções de primeiro grau com
roneamente para interpretar o comportamento da curva do gráfico. Assim, entender a forma de
exemplos sobre o coeficiente de elasticidade de molas e composições de roldanas móveis; (b)
uma representação envolve aprender não só os seus operadores, mas também, em alguns casos,
progressões geométricas que ocorrem em elementos da geometria fractal; (c) funções cíclicas
aprender a ignorar o uso de operadores inapropriados para interpretar essa representação.
30 A manipulação de representações envolve aprender também a relação entre a repre- um aluno do ensino médio, para dentro do software, eliminando a necessidade do aprendiz 31
sentação e o domínio representado, o que, para o aprendiz, pode ser mais difícil em virtude de de aprender outras representações matemáticas e permitindo que ele se concentre somente
XI Worshop sobre Software Livre
3. Arquitetura geral
Dentre muitas dezenas, devido ao seu caráter genérico, os dois principais módulos dos OA 4.4. Interface do aprendiz
desenvolvidos e aplicados na presente pesquisa são: (a) Teclado Virtual; (b) Interface com o
aprendiz. Os códigos-fonte de todos os softwares podem ser encontrados em todos os subdire- Uma interface com o aprendiz é pré-estabelecida pelo CARRIE e está dividida em três
tórios condigital do seguinte endereço: http://git.c3sl.ufpr.br/gitweb. partes principais. A primeira é destinada ao título do OA, juntamente com o título da página
atual. Em seu canto superior direito, também estão as opções para aumentar e diminuir o ta-
4.1. Teclado Virtual manho das letras. A segunda parte é destinada ao domínio específico. A outra é reservada às
opções da dinâmica de controle oferecida ao aprendiz. Exemplos de tais controles são: paginar
A criação de forma atrativa e intuitiva de representação externa para expressões ma- para frente ou para trás, botão de acesso ao glossário, botão de acesso ao guia de retroação e
temáticas teve como base auxiliar o aprendiz. Trazendo aquilo que é prático e usual, para o botão de acesso ao bloco de anotações.
32 Referências 33
XI Worshop sobre Software Livre
de serviço e com a ferramenta livre obteve-se relatórios e estatísticas para controle. Espera-
XI Worshop sobre Software Livre
eduardo.abreu@apexbrasil.com.br,{sdias,lcdalcorno,fdlanini}@inmetro.gov.br,
angela.albarello@fazenda.gov.br 2. Cenário
Criado pela Lei 5.966, de 11 de dezembro de 1973, o Instituto Nacional de Metrologia, Nor-
Abstract. This article is a case study on the deployment of the free tool GLPI (Ges-
malização e Qualidade Industrial – INMETRO, é o órgão normativo do Sistema Nacional de
tionnaire Libre de Parc Informatique), in conjunction with the implementation process of
Metrologia, Normalização e Qualidade Industrial (Sinmetro) e também Secretaria Executiva
customer service to the user of IT in INMETRO, along the lines of Instruction nº 04/2008/
do Conselho Nacional de Metrologia, Normalização e Qualidade Industrial (Conmetro). “Sua
MPOG-SLTI. The text has the approach and justifies the new model for hiring the services of
Information Technology of the Brazil Federal Government. Also, it presents the process and missão é prover confiança à sociedade brasileira nas medições e nos produtos, através da
free software tools used for the case. Furthermore, as a benefit, identifies possible points metrologia e da avaliação da conformidade, promovendo a harmonização das relações de
of improvement in GLPI with its functionalities and necessary for successful adoption of the consumo, a inovação e a competitividade do País.” (fonte: www.inmetro.gov.br/inmetro/
solution presented. oque.asp, acessado em 30/05/2010).
Motivada pela Instrução Normativa da referência, a Coordenação-Geral de Tecnolo-
Resumo. Este artigo é um estudo de caso sobre a implantação do software livre GLPI gia da Informação – CTINF preparou o termo de referência para contratação de uma empresa
(Gestionnaire Libre de Parc Informatique), em conjunto com o processo de implantação do para prestar o serviço de atendimento ao usuário de TI no INMETRO, denominado Service
serviço de atendimento ao usuário de TI no INMETRO, nos moldes da Instrução Normativa Desk. A instrução normativa dispõe sobre as contratações de serviços de Tecnologia da In-
nº 04/2008/MPOG-SLTI. O texto tem como abordagem e justificativa o novo modelo para formação pelos órgãos e entidades integrantes do Sistema de Administração dos Recursos
contratação de serviços de Tecnologia da Informação do governo federal, apresenta o pro- de Informação e Informática – SISP. A realização dos serviços contratados abrange o Edifício
cesso e as ferramentas de software livre utilizadas para o caso. Além disso, como benefício, Sede, localizado no Rio de Janeiro – RJ e o campus de Xerém, localizado em Duque de Ca-
identifica-se possíveis pontos de melhoria no GLPI com suas funcionalidades utilizadas e xias – RJ.
necessárias para o sucesso da adoção da solução apresentada. Assim, com o objetivo de melhorar o procedimento de atendimento aos usuários
de TI e ao mesmo tempo adequar à forma de contratação do serviço conforme preconiza
a instrução normativa da referência, durante o ano de 2009 realizou-se o mapeamento do
1. Introdução processo do serviço de atendimento ao usuário de TI, a licitação e contratação do referido
serviço, de forma que o mesmo viesse a atender as reais necessidades e expectativas do
O uso de software livre no governo federal vem crescendo nos últimos anos, principalmen- INMETRO. Na próxima seção aborda-se esta etapa do trabalho realizado.
te após a criação de políticas públicas de incentivo. Alguns dos principais órgãos públicos
assumiram papel de líderes e diversos casos de sucesso foram divulgados recentemente.
Dentre as diversas soluções desenvolvidas, este artigo apresenta o caso de utilização de 3. O mapeamento do processo de atendimento ao usuário de TI
uma ferramenta livre e os aspectos relacionados com a contratação de empresa terceirizada
para a prestação do serviço de atendimento ao usuário de Tecnologia da Informação (TI) no As atividades de mapeamento do processo de atendimento ao usuário de TI foram realiza-
INMETRO. Como característica importante deste caso, ressalta-se que a utilização do sof- das em paralelo com o processo licitatório, de forma a permitir que a empresa vencedora
tware livre foi possível após a identificação de funcionalidades e mapeamento do processo pudesse, antes de entrar em operação, conhecer os procedimentos necessários para atendi-
de trabalho para a contratação de uma empresa para prestação do serviço de atendimento mento ao usuário. A figura 1 apresenta o resultado dessa etapa, onde é possível identificar
ao usuário de TI, conforme determinado na legislação vigente. Para isso, foi realizado o ma- as interações entre usuário e níveis de atendimento.
36 nível. A partir disso, um chamado é registrado no software GLPI. Os técnicos cadastrados têm 37
acesso aos chamados abertos, onde os mesmos podem ser atribuídos de acordo com critérios
XI Worshop sobre Software Livre
4. GLPI
O software GLPI (Gestionnaire Libre de Parc Informatique – Gestão Livre de Parque de Informáti-
ca) é uma solução de fonte aberta para gestão de chamados de helpdesk, parque de hardware
e software disponibilizada em http://www.glpi-project.org, por meio da licença GPL (General
Public License), publicada pela Free Software Foundation. A Revista do Linux, em sua edição
nº 56, apresenta a matéria “Na ponta do dedo - Gerenciamento de Recursos com GLPI”, a qual
Figura 1. Mapa de processos para o atendimento ao usuário de TI no INMETRO. identifica a ferramenta GLPI como uma das disponíveis para a manutenção do controle sobre
os ativos de TI e suporte técnico. Outra ferramenta que pode ser usada em conjunto com GLPI
As principais atividades do processo e relacionadas com a ferramenta para registro de é o software livre OCS Inventory NG, o qual disponibiliza informações de inventário respeito
atendimento são apresentadas a seguir. As demais atividades e seu detalhamento estão pre- do parque computacional instalado e permite relacionar os equipamentos aos chamados em
sentes no documento de mapeamento dos processos internos da CTINF/INMETRO. atendimento. Utilizou-se neste cenário a versão 0.72.21 do GLPI em conjunto com as tecnolo-
gias Apache versão 2.2.12-1, Mysql versão 5.1, PHP versão 5.2.4 e Linux Ubuntu Server 9.10
• Abertura de chamado: é o ato ou tarefa de registrar um novo problema, que (Karmic-Koala), kernel 2.6.31-14-server-SMP.
deve ser realizado por meio telefônico ou e-mail. Após análise de ferramentas livres disponíveis, dentre elas: OcoMon (Sistema para hel-
• Entendimento e definição do cenário: descrever de forma simples e objetiva o pdesk, disponível em http://ocomonphp.sourceforge.net) e CACIC (Configurador Automático e
problema apresentado pelo usuário. Coletor de Informações Computacionais, disponível em http://www.softwarepublico.gov.br), o
• Registro no sistema: é o ato ou tarefa de abrir um chamado, com atribuição au- GLPI foi escolhido, pois apresenta funcionalidades mais próximas aos requisitos identificados e
tomática de número de chamado, para o problema ou solicitação do usuário. ao modelo de processo mapeado. Além disso, permite integração com outra ferramenta livre
• Categorização do chamado: com base nas informações reportadas pelo usuário, de inventário, o OCS Inventory NG (disponível em http://www.ocsinventory-ng.org). O GLPI está
o responsável pela abertura do chamado deve identificar uma área e tipo de cha- configurado no idioma Português e com configurações direcionadas ao ambiente do INMETRO.
mado entre usuário comum e usuário VIP. A tabela 1 identifica as principais funcionalidades do GLPI e o estado de sua aplicação no INME-
• Priorização do chamado: conforme previsto no termo de referência, o chamado TRO. Todas as configurações foram implementadas através das funcionalidades da própria fer-
originado por usuário tipo VIP possui acordo de nível de serviço diferenciado e deve ramenta, ou seja, sem intervenção no código-fonte, exceto para a tela visualização de chamado
ser priorizado. fechado, a qual contém um texto puro em seu rodapé a ser usado para assinatura do técnico
• Documentação e atualização da Base de Conhecimento – BC: uma das obri- e do usuário no momento do fechamento dos chamados de atendimento presencial, que são
gações da contratada é fornecer informações e alimentar a base de conhecimento. impressos e arquivados. A seguir, destacam-se os perfis de usuário configurados:
A ferramenta usada deve fornecer esta funcionalidade.
• Controle de fechamento de chamado – CFC: todo chamado registrado e finalizado • Técnico: usado pelos usuários técnicos da empresa contratada. Tem a capacidade
deve ser incluído no relatório mensal para que seja efetuado seu pagamento. No caso dos de abrir e registrar chamados.
chamados com atendimento presencial, deverá ser recolhida assinatura do usuário. • Coordenador: usado pelo coordenador da empresa contratada. Tem a capacidade
de abrir, registrar e atribuir chamados, acessar relatórios e estatísticas.
O atendimento ao usuário de TI no INMETRO é realizado por meio de chamadas telefônicas • Supervisor: usado pelo(s) gestor(es) do contrato. Tem a capacidade de ler os cha-
em ramal interno ou por e-mail, onde atendentes fazem sua triagem e atendimento de primeiro mados registrados, acessar relatórios e estatísticas.
38 Dentre os diversos relatórios gerados pela ferramenta, alguns indicadores apresentados 39
Tabela 1. Funcionalidades do GLPI e sua aplicação no INMETRO
nos relatórios são usados pelo gestor do contrato no INMETRO e pelo coordenador da empresa
XI Worshop sobre Software Livre
Referências
5. Indicadores, resultados alcançados e possibilidades de
melhoria Gestionnaire Libre de Parc Informatique – GLPI. Disponível em http://www.glpiproject.org. Aces-
sado em 15/08/2009.
Com o objetivo reduzir o tempo de atendimento e melhorar a produtividade do serviço presta- Brasil. Ministério do Planejamento, Orçamento e Gestão. Sec. de Logística e Tecnologia da Infor-
do, o INMETRO obteve sucesso usando os indicadores presentes na tabela 2. mação (MPOG-SLTI). Instrução Normativa nº 04/2008, de 19/05/2008.
Control Objectives for Information and related Technology (COBIT). Management Guidelines. IT
Governance Institute. 2000.
Tabela 2. Indicadores para acordo de nível de serviço Indicador Descrição Controles
IT Infraestructure Library (ITIL). Planning to Implement Service Management. Office Of Govern-
Tempo de espera para Tempo decorrido entre a abertura do No atendimento presencial não deve
atendimento chamado e o início do atendimento. ser maior que 1 hora. ment Commerce – OGC. 2002.
PRODROMOU, EVELTHON. “Na ponta do dedo - Gerenciamento de Recursos com GLPI”. Revista
Tempo de atendimento Tempo médio decorrido desde o início Não deve ser maior que 3,5 horas
do atendimento até o fechamento do Linux Magazine nº 56, São Paulo, p. 36, julho, 2009.
chamado, considerando o tempo de
diagnóstico e tempo de resolução.
Número de recorrências Número de reabertura de chamados Não deve ser maior que 5% do total
de chamados no mês.
Número de roteiros de Número de novos roteiros de atendi- Não deve ser inferior a 5% do total de
atendimento criados mento criados pela equipe do 3º nível atendimentos mensais, até que 96%
de atendimento. dos atendimentos tenham roteiro as-
sociado.
41
Sessão II
Banco de Dados
Luciano G. S. Ramalho Beyond the informal NoSQL descriptor, CDS/ISIS is more precisely described as a docu-
ment database implementing the data model of the ISO-2709 Format for Information Exchange
standard, which in turn reflects the data model of the Library of Congress MARC4 format for the
Departamento de Biblioteconomia e Documentação, Escola de Comunicações e Artes representation of bibliographic records.
Universidade de São Paulo – São Paulo, SP – Brazil
BIREME/PAHO/WHO, Latin-American and Caribbean Center on Health Sciences Information 2.1. Relaxing the restrictions of the First Normal Form
luciano.ramalho@bireme.org MARC fields can be multivalued and composite. Therefore, the MARC data model viola-
tes the First Normal Form (1NF) atomicity requirement: “values in the domains on which each
Abstract. CDS/ISIS is a family of semistructured, “NoSQL” database products created by relation is defined are required to be atomic with respect to the DBMS” [Codd, 1990]. Relaxing
Unesco and used at the SciELO digital library as well as thousands of academic libraries since the 1NF atomicity requirement greatly simplifies the development of bibliographic databases
the 1980s. This paper describes how a database-independent API is being developed to allow and the exchange of records among libraries.
the LILACS bibliographic methodology created by BIREME to be implemented over CDS/ISIS and
modern semistructured databases such as MongoDB and CouchDB. [...] it is interesting to note the absurdity of the NRM [Normalized Relational
Model]: if a book has 3 authors and 5 subjects, it will be necessary to represent
it in the NRM through a row in the Books table, plus 3 rows in the AuthorNames
1. Introduction (which would implement the corresponding multivalued attribute) and another
5 in the Subjects, for a total of 9 rows in three separate tables […] yet what we
Much of the data on the Web is organized in hierarchies and is multimedia in nature, therefore hold in our hands in the real world is just one book [...] [Setzer, 2005] 5
consisting of several parts that nevertheless must be treated as a unified whole. Modeling such
data in normalized relational databases is difficult, and may result in performance problems due 2.2. The semistructured data model
to the cost of joins. De-normalization and horizontal scaling help meet the scalability challen-
ges of the Web, but are non-trivial to implement on relational databases originally designed to In the database theory literature, the data model most similar to the CDS/ISIS database
enforce consistency at all times [Eure, 2009]. These issues have prompted renewed interest in structure is the semistructured data model [Abiteboul, 1999].
non-relational databases, collectively known since 2009 by the informal “NoSQL” term.
Apache Cassandra, Redis, Apache CouchDB and MongoDB are some examples of Open The semi-structured data model is designed as an evolution of the relational data
Source NoSQL databases. Cassandra was created by Facebook and is also used by Twitter and model that allows the representation of data with a flexible structure. Some items
Digg. Two large-scale deployments of proprietary NoSQL databases are BigTable, by Google, may have missing attributes, others may have extra attributes, some items may
and Dynamo by Amazon.com, used by its S3 storage web service. have two ore more occurrences of the same attribute. The type of an attribute is
While most NoSQL products mentioned have been released in the past 10 years, CDS/ also flexible: it may be an atomic value or it may be another record or collection.
ISIS is a non-relational database created by Unesco in the 1960s, ported to PC/DOS microcom- Moreover, collections may be heterogeneous, i.e., they may contain items with
puters in the 1980s and then to the Windows and Linux operating systems. Today it is used by different structures. The semi-structured data model is a self-describing data mo-
thousands of libraries to run their on-line catalogs. del, in which the data values and the schema components co-exist. [Liu, 2009]
The C language port of CDS/ISIS for Linux and Windows, called CISIS, is used to run two
of the largest on-line digital libraries in Latin America, LILACS1 and SciELO2, and is deployed in In a CDS/ISIS record, fields are identified by numeric tags from 1 to 32767. The meaning
hundreds of cooperating scientific information centers, handling more than 18 million bibliogra- of each numeric tag is defined by the application. For instance, in the LILACS methodology,
phic records. CISIS was developed and is maintained, since the early 1990s, by BIREME/PAHO/ field 10 is Author and field 12 is Title. The fact that each field occurrence is preceded by its tag
WHO, the Latin American and Caribbean Center on Health Sciences Information, a specialized number means that fields may be omitted or repeated as needed.
LILACS: Latin American and Caribbean Literature in Health Sciences), part of the Virtual Health Library coordinated by
1 3
Universidade Federal de São Paulo
BIREME/PAHO/WHO 4
MAchine-Readable Cataloging
SciELO: Scientific Electronic Library Online), a partnership between FAPESP, CNPq, FapUNIFESP and BIREME/PAHO/WHO
2 5
Translated from the Brazilian Portuguese book by Valdemar Setzer “Bancos de dados” (1st ed., 2005)
44 Multivalued attributes are represented by repeating field tags. In LILACS, field 10 (Au- The IFL is flexible but its syntax is terse. Readability is also hindered by the fact that field 45
thor) may be repeated, and field 12 (Title) may be repeated if the title is available in multiple tags are always numeric, subfield labels are limited to one alphanumeric character, and the
XI Worshop sobre Software Livre
CDS/ISIS has restrictions that are not in the general semistructured data model: 3. ISIS-DM, a modern API for schema definition and access
1. There is only one level of nesting: fields may contain subfields but subfields may In 2007, BIREME/PAHO/WHO started the development of the ISIS Network Based Platform (ISIS-
not contain sub-subfields; NBP) project [BIREME, 2010], which aims to re-implement the functionality of CISIS in the Python
2. Subfields must be labeled from A to Z and from 0 to 9, therefore a field can only programming language using a service oriented architecture. ISIS-NBP is free software, distribu-
contain 36 subfields; ted under the GNU General Public License. Most of the effort from 2007 to 2009 was devoted to
the CISIS binary-compatible storage layer and the Formatting Language interpreter.
In addition to the 36 subfields, a field may have content that is outside of any subfield. A recent development within ISIS-NBP is ISIS-DM, the ISIS Data Model application pro-
Because the syntax for delimiting subfields uses only one marker at the start of the subfield, gramming interface. The ISIS-DM effort aims to provide an API for:
data outside of the subfields must appear before the first subfield.
1. Schema definition through classes, similar to modern object persistence fra-
10 «Lewis Carroll^1USP^2ECA^pBrasil^cSão Paulo^rEditor» meworks;
2. Data extraction using operators and methods similar to modern collection and
Figure 1: Sample of an author field (10) showing subfields labeled “1”, “2”, “p”, “c” and “r”. The string handling APIs;
“p” subfield describes the country of the author, in this case “Brasil”. The name of the author,
“Lewis Carroll” is not preceded by a subfield delimiter, therefore is not part of any subfield. In other words, the goal is to allow programmers to express constraints and functionality
similar to those of the CDS/ISIS Field Definition Table and the CDS/ISIS Formatting Language, but
in contemporary, object-oriented programming languages.
2.4. Schema definition in CDS/ISIS The API aims to be database-independent. Objects defined in the ISIS-DM should be
easily persisted in CDS/ISIS and other semistructured databases.
Like all semistructured databases, CDS/ISIS is “schemaless” in the sense that a data-
base instance does not have a predefined schema. But in practice, CDS/ISIS databases usually 3.1. Schema definition
have at least a documented, human-readable schema, describing the semantics of each field
tag, and defining which field tags are mandatory or repeatable and the subfields that may Listing 1 shows an example of a very simple ISIS-DM schema definition in Python. A
be used inside each field tag. A rich example of such a schema is the LILACS Data Dictionary schema called Book is being defined as a subclass of CheckedModel, an ISIS-DM class which
[BIREME, 2008]. Some CDS/ISIS applications, like WinISIS and ABCD, allow the user to define a implements schema constraints and validation. Field types are implemented as
schema in a Field Definition Table (FDT), which is used to generate data entry forms. Python descriptors, which control instance attribute access.
2.5. Handling fields and subfields in the ISIS Formatting Language (IFL)
The CDS/ISIS family has a data extraction language called the “Formatting Language”,
henceforth the IFL. The IFL is used primarily to generate displays and reports of database recor-
ds and to generate indexes supporting efficient retrieval. Listing 1: Simple schema definition showing required and repeatable fields.
Non-repeatable string fields are instances of SingularProperty; repeatable fields are ins-
Table 1: Examples of ISIS Formatting Language expressions
tances of PluralProperty. Both types may have subfields, which are always optional. The API
IFL expression Result Comment
checks whether subfields entered match those in the field definition. Internally, string data is
v10[1] Lewis Carroll^1USP^2ECA^ first occurrence of field tag 10 converted to instances of a CompositeField class which implements several subfield access
pBrasil^cSãoPaulo^rEditor
methods and operators, including iterators over the subfield keys and values.
v10^p[1] Brasil content of p subfield in first occurrence of field tag 10
A NumberProperty is non-repeatable and may only contain integers or floatingpoint
v10^p[1]*0.3 Bra substring starting at offset zero with length 3 of p numbers. For any type of property, a validator function may be specified, returning an error
subfield in field tag 10
message when the field value fails a test.
46 The CheckedModel class and the various property classes provide a means of defining 47
the schema and validating records in a way that will allow automatic generation of data en-
XI Worshop sobre Software Livre
The CDS/ISIS Formatting Language implements both presentation and data extraction
functions. Many of its presentation features were designed for fixed width displays with mo-
Listing 2: Instance creation and attribute access. Fields may be handled as a whole nospaced fonts, while today all CISIS applications in production at BIREME/ PAHO/WHO use a
or by subfield, output is formatted with the Python % formatting operator. Web interface where those formatting assumptions are no longer valid. On the other hand, the
richer data extraction API made possible with Python and other modern languages allow more
convenient handling of fields and subfields in the presentation layer, where sometimes data will
The CheckedModel.check instance method verifies the presence of required fields (see be rendered directly as HTML elements and other times as JSON or XML for delivery and display
listing 3). It returns a dictionary of attribute names and error messages, useful for displaying in via Ajax.
Web or GUI forms. Validator functions are applied upon instance creation or attribute change,
and generate exceptions with custom messages. 4.2. Future work
References
Listing 3: Demonstration of .check method and validator functions.
Abiteboul, S.; Buneman P.; Suciu, D. (1999), Data on the web: from relations to semistructured
data and XML, San Francisco: Morgan Kaufmann, 1999.
BIREME (2008), Diccionario de datos del modelo LILACS Versión 1.6a , São Paulo: BIREME/PAHO/
4. Conclusion
WHO, 2008.
BIREME (2010), ISIS-NBP Project Repository, São Paulo: BIREME/PAHO/WHO http://reddes.bvsa-
4.1. Lessons learned
lud.org/projects/isisnbp/, accessed June 2010.
Codd, E. F. (1990) The Relational Model for Database Management Version 2, Reading, MA:
Using modern language features such as metaclasses, operator overloading and object
Addison-Wesley, 1990.
properties (Python descriptors), part of the functionality of the CDS/ISIS Field Definition Table
Eure, I. (2009) “Looking to the future with Cassandra”, In: Digg Technology Blog http://about.
and of the Formatting Language was implemented in less than 700 lines of code, including auto-
digg.com/blog/looking-future-cassandra, September 9, 2009.
mated tests (doctests), in the isisdm.properties package composed of three Python modules.6
Liu, L.; Özsu, M. T. (2009) Encyclopedia of database systems : Springer, 2009
Setzer, V.; Corrêa da Silva, F. (2005) “Bancos de dados aprenda o que são, melhore seu conhe-
6
Source code available at the BIREME/PAHO/WHO RedDes public repository: http://reddes.bvsalud.org/projects/isisnbp/
browser/isisdm/properties or via http://bit.ly/isisdmrepo cimento, construa os seus”, 1ª ed. São Paulo: Edgard Blücher, 2005.
48 lativas a sistemas deste tipo, podendo-se destacar: Oracle Database, Microsoft SQL Server e 49
IBM DB2 [Bedoya 2001]. No entanto, existem poucas implementações disponíveis para uso no
XI Worshop sobre Software Livre
Abstract. As an organization grows, it needs to store great amounts of data and or- PostgreSQL é um sistema gerenciador de banco de dados de código-fonte aberto, multiplata-
ganize them in a way that allows its recovery. The goal of pgGrid is to offer an extension to forma, com mais de 15 anos de desenvolvimento. Segue o padrão SQL99 e seu gerenciador
PostgreSQL database management system (DBMS) that allows data fragmentation and distribu- de transações garante as propriedades atomicidade, consistência, isolamento e durabilidade
tion in the most convenient form among multiple database servers. It was necessary to modify (ACID) [PostgreSQL 2009].
the “pgcluster” tool to manage data location and to optimize distributed queries. Moreover, Dentre uma gama enorme de SGBDs relacionais e objeto-relacionais disponíveis no mer-
an extension to the data definition language (DDL) was proposed to define data distribution cado, o PostgreSQL se sobressai devido à sua aceitação pela comunidade de software livre
parameters and distributed system’s topology. mundial, estabilidade e aderência ao padrão SQL.
O pgCluster é uma extensão do PostgreSQL que fornece replicação síncrona dos dados.
Resumo. À medida que as organizações crescem, também cresce a necessidade de A ferramenta possui duas funções principais:
armazenar grandes massas de dados e organizá-los de uma forma que favoreça sua recupe-
ração. A proposta deste trabalho é oferecer uma extensão ao sistema gerenciador de banco • Balanceamento de carga: Um módulo recepciona os comandos de consulta e
de dados (SGBD) PostgreSQL que permita a fragmentação e a distribuição dos dados da forma transações e os distribui da forma mais conveniente, levando em consideração a
mais conveniente em vários servidores de banco de dados. Para isso foi necessário modificar a carga (capacidade de processamento comprometida) dos servidores.
ferramenta ‘’pgcluster’’ a fim de gerenciar a localização dos dados no sistema distribuído e oti- • Alta disponibilidade: É garantida através da replicação total dos dados; assim,
mizar as consultas. Além disso, foi proposta uma extensão à linguagem de definição de dados se um servidor falha, os demais podem responder em seu lugar, desde que pelo
(DDL) para a definição dos parâmetros da distribuição dos dados e dos ‘’sítios’’ que formam o menos um servidor de replicação continue no ar.
sistema de banco de dados distribuído (SBDD).
Conforme se pode facilmente perceber, o maior problema do pgCluster é a falta das
funcionalidades de fragmentação, que exigem que o usuário replique totalmente as bases de
1. Introdução dados para que o sistema funcione, degradando o desempenho e também desperdiçando re-
cursos do sistema.
Nos primórdios da computação, todo processamento era realizado de forma centralizada. Com
o passar dos anos foi-se notando o potencial que as características dos sistemas distribuídos
proporcionam. Sistemas de banco de dados distribuídos são sistemas distribuídos que armaze- 3. Extensões propostas ao pgCluster
nam, manipulam e organizam dados.
De acordo com [Ozsu 1999], as principais promessas e características dos sistemas de Fragmentar os dados é uma necessidade básica na maioria dos ambientes distribuídos [Ozsu
banco de dados distribuídos são: 1999]. Com este propósito, o pgGrid adiciona funções de fragmentação para o pgCluster e
fornece comandos, como uma extensão à DDL, para definição dos fragmentos e alocação dos
• Administração transparente dos dados fragmentados nas máquinas que compõem mesmos nos servidores. Três grupos de instruções especiais foram adicionados à gramática:
o sistema;
• Melhoria no desempenho das consultas, através da paralelização das mesmas e de • Adição e exclusão de servidores no sistema (CREATE SERVER);
outras estratégias de otimização; e • Definição de fragmentos (CREATE FRAGMENT);
• Fácil expansão e boa escalabilidade do sistema. • Alocação de fragmentos nos servidores (PLACE);
Muitos gerenciadores de banco de dados relacionais proprietários possuem funções re- A Figura 1 apresenta alguns exemplos de uso dos comandos adicionados.
50 Os gerenciadores avaliados foram: MySQL [MySql AB 2007], Oracle Database [Gopa- 51
CREATE SERVER “site1” HOST “inf.ufsc.br” PORT 5432 RECOVERY PORT 7000;
CREATE FRAGMENT cliente_pessoa_fisica ON CLIENTE (cod_cliente, nm_cliente) where lakrishnan 2006] e IBM DB2 [Bedoya 2001]. A avaliação foi realizada segundo alguns critérios
XI Worshop sobre Software Livre
Toda vez que um comando SELECT é submetido ao servidor, o mesmo é analisado, pas-
sa por otimizações para melhorar seu desempenho e depois é enviado para o mesmo módulo Figura 2. Modelo lógico correspondente ao caso de uso
executor dos demais comandos. O executor das consultas foi alterado para consultar os catálo-
gos do pgGrid e verificar a necessidade de solicitação de dados para outros sites do cluster. Cinco sites pertencem ao sistema, localizados nas principais cidades do estado: Flo-
Quando o sistema identifica que uma consulta necessita de dados externos (através de rianópolis (FLN), Joinville (JVL), Blumenau (BLU), Criciúma (CRI) e Chapecó (XAP). As regras de
reduções [Ozsu 1999]), uma solicitação é enviada para cada site que contém dados usados pela armazenamento são simples: cada cidade armazena seu cadastro e os produtos produzidos em
consulta. Cada site processa as operações possíveis no seu conjunto de dados (provendo paraleli- sua região. A capital (FLN), além dos dados de seus produtos, armazena o cadastro de todas as
zação) e envia o resultado para o servidor que recebeu a solicitação, este é responsável por “jun- cidades do estado para facilitar a listagem da tabela neste local. Os produtos possuem como
tar” os dados (através de operações de união e junção) e apresentar o resultado final ao usuário. atributos: código, nome e cidade de origem. As cidades possuem código, nome e a distância
(em quilômetros) até a capital.
Depois que os cinco servidores foram configurados e colocados no ar, o modelo de da-
4. Outros SGBDs Distribuídos dos e sua fragmentação foram definidos através dos comandos apresentados na Figura 3.
Como parte do trabalho, foi realizada a avaliação de várias implementações de banco de dados /*relação cidade*/
sc=# CREATE TABLE CIDADE (ID INT, NOME VARCHAR, DISTANCIA_CAPITAL INT);
distribuídos disponíveis no mercado. sc=# ALTER TABLE CIDADE ADD CONSTRAINT PK_CIDADE PRIMARY KEY (ID);
52 /*relação produto*/ Pode-se notar, através dos dados obtidos, que a fragmentação nos dados melhorou as 53
sc=# CREATE TABLE PRODUTO (ID INT, NOME VARCHAR, ID_CIDADE_ORIGEM INT);
sc=# ALTER TABLE PRODUTO ADD CONSTRAINT PK_PRODUTO PRIMARY KEY (ID); operações de atualização, pois não é necessário acessar todos os sites do sistema quando um
XI Worshop sobre Software Livre
6. Testes de desempenho penho. No entanto, o módulo planejador de consultas precisa ser melhorado para usufruir mais
da paralelização que a fragmentação proporciona e o software deve passar por testes mais
Os testes executados no caso de uso abordaram principalmente as garantias da integridade e rigorosos antes de ser colocado em produção em casos reais.
reconstrução dos dados distribuídos no sistema. Também foram realizados testes para examinar o Como próximo passo planeja-se implementar as otimizações de consultas que o am-
desempenho das operações dentro do sistema distribuído utilizado no caso de uso, fazendo uma biente distribuído possibilita, tais como a paralelização de subconsultas.
comparação com o desempenho do pgCluster com a mesma configuração e massa de dados.
Buscando resultados mais precisos, foi gerada uma massa de dados com 500000 produtos Repositório do projeto
que foi dividida em partes iguais nos sites do sistema, de acordo com as regras de fragmentação
PgGrid é um software de código-fonte aberto, disponível pela licença GPL, que pode ser
definidas anteriormente. Os testes foram realizados utilizando dois servidores (três sites alocados
baixado do site http://pgfoundry.org/projects/pggrid/.
no servidor A e dois no servidor B) conectados a um switch de 100 Mbps (Fast Ethernet).
As operações utilizadas nos testes estão listadas na Tabela 2, e correspondem ao tempo
das operações, carga dos servidores, comunicação através da rede e dos acessos aos disposi-
Referências
tivos de armazenamento.
Ozsu, M. Tamer (1999) “Principles of distributed database systems”. New Jersey, United States,
Tabela 2. Resultados dos testes de desempenho Prentice Hall, p. 7-10.
Parâmetro pgCluster pgGrid PostgreSQL Development Group (2009). “About PostgreSQL”, http://www.postgresql.org/.
Bedoya, H. et al (2001). “Advanced Functions and Administration on DB2 Universal Database for
Tempo para atualização (UPDATE) na relação CIDADE 1.8s 0.9s
iSeries”, http://www.redbooks.ibm.com/abstracts/sg244249.html.
SELECT * FROM PRODUTO 5.3s 16.5s
MYSQL AB (2007). “MySQL 5.0 Reference Manual”, http://dev.mysql.com/doc/refman/5.0/.
SELECT * FROM PRODUTO WHERE NOME = ’PROD500001’ 4s 2.3s GOPALAKRISHNAN, K “Oracle Database 10g Real Application Clusters Handbook”. Columbus:
Pacotes de rede transmitidos durante a atualização 16 4 McGraw-Hill Osborne Media (Oracle Press), 2006, ISBN 9780071465090.
Carga de trabalho durante a consulta 20% 38%
Espaço médio ocupado pelo banco de dados em cada site 30MB 7.57MB
54 evita erros que podem comprometer todo um empreendimento [dos Santos et al. 2009]. 55
A dificuldade para se encontrar softwares adequados para a área espacial foi a principal
XI Worshop sobre Software Livre
Vale realçar a grande importância da fase inicial de projeto no custo, prazo de entrega sobre os parâmetros extraídos da configuração de arquitetura de satélite e será gerado um
e no sucesso do sistema final. Decisões tomadas nessa fase apresentam grande importância e relatório contendo o balanço para a dada configuração.
qualquer alteração posterior pode acarretar alto custo para modificações nas fases posteriores
do desenvolvimento de um sistema.
Com a automatização do processo de Projeto Conceitual obtém-se uma maior eficiência 4. Softwares Livres Utilizadas no SatBudgets
e velocidade de desenvolvimento, necessidade essencial no mercado competitivo atual.
Na fase exploratória de potenciais ferramentas disponíveis de apoio ao desenvolvimento do
SatBudgtes, várias alternativas foram consideradas, entretanto as ferramentas relatadas a se-
3. Satbudgets - uma Instância de Engenharia Dirigida por Mo- guir foram escolhidas por serem as mais convenientes para o projeto. O conhecimento prévio
delos de utilização e grande comunidade de usuários foram alguns dos fatores que influenciaram
substancialmente o processo dessa escolha.
SatBudgets é o protótipo de uma ferramenta relatada neste trabalho para auxiliar na fase Para a modelagem de sistemas foi escolhida a ferramenta TOPCASED. Esta ferramenta
conceitual de um projeto de satélite automatizando a geração de balanços (mecânico, elétrico, possibilita a modelagem de sistemas fazendo uso da SysML [OMG 2006], uma ADL de uso geral
entre outros) e aplicado a dados do projeto do satélite ITASAT. que possibilita a modelagem de sistemas. A SysML é uma extensão da UML sugerida pela OMG
A Figura 2 apresenta sumariamente o fluxo de trabalho associado à ferramenta SatBud- para possibilitar a modelagem de sistema que incorporam hardware e/ou software. TOPCASED
gets e o conjunto de ferramentas de software livre que apoiam seu desenvolvimento. baseia-se no Galileo (Eclipse 3.5) e requer uma JVM (Java Virtual Machine). Seu download pode
Através da interface gráfica do SatBudgets, um arquivo SysML é informado como o ser feito como um aplicativo autônomo ou pode ser instalado diretamente através do gerencia-
modelo que servirá de entrada para o processamento bem como quais balanços devem ser dor de instalação do Eclipse [Lescot 2009].
calculados. Finalmente um formato de arquivo de saída é selecionado pelo engenheiro de sis- O Eclipse [Burnette 2005] é uma IDE (Integrated Development Environment) desenvol-
temas para a apresentação do relatório de balanços, seja via visualizador da ferramenta ou vida em Java, com código aberto para a construção de programas de computador. O projeto
armazenamento nos formatos PDF, XLS ou HTML. Eclipse foi iniciado na IBM que desenvolveu a primeira versão do produto e doou-o como sof-
A ferramenta SatBudgets foi desenvolvida na linguagem Java, fazendo uso somente de tware livre para a comunidade de computação.
ferramentas e APIs (Application Programming Interface) de livre distribuição como requisito Para a manipulação do modelo SysML foi utilizada a API JDOM [JDOM 2009], uma API de
inicial ao desenvolvimento da ferramenta. código aberto baseado em Java que cria um modelo de objeto do documento XML (Extensible
No fluxo de funcionamento da ferramenta SatBudgets, ilustrado na Figura 2, um modelo Markup Language). Está API fornece uma forma fácil e eficiente de representar este documento
SysML, mais especificamente o diagrama de blocos, do satélite servirá de entrada para a leitura para manipulação.
do arquivo do modelo. Um parser é responsável por encontrar dentro da estrutura do arquivo Para o processamento das regras de negócio foi adotado o framework Drools. Drools é
os tokens definidos e extrair seus valores. Em seguida, uma atribuição é feita a cada um dos um mecanismo baseado em regras que foi lançado pela Codehaus e posteriormente adotado
valores extraídos no parsing. Estas funcionalidades foram implementadas fazendo uso da API como um projeto do JBoss, conhecido também como JBoss Rules [JBoss 2009]. Em Drools, o
JDOM, uma API Java para manipulação de arquivos XML. As regras de negócio serão aplicadas domínio de conhecimento é representado através das classes do sistema e as necessidades de
58 uso do sistema geram as regras. Uma regra tem uma ou mais condições (ou fatos), que levam Referências 59
a uma ou mais ações (ou consequências). Uma regra Drools é tratada em uma memória interna
XI Worshop sobre Software Livre
Sistemas espaciais requerem cada vez mais bons princípios de engenharia de sistemas para
lidarem com as questões de crescente complexidade. Softwares de apoio aos processos da
Engenharia de Sistemas Espaciais podem apresentar limitações de uso como embargo tecno-
lógico ou alto custo.
Neste sentido, o trabalho adota a abordagem MDE para projeto conceitual de satélites
empregando uma ferramenta desenvolvida a partir somente de software livre, o SatBudgets.
MDE permite a reutilização de informações entre diferentes projetos de satélites uma vez que
é focada em modelos.
A aplicação de MDE neste trabalho foi baseada no uso da linguagem SysML para mo-
delagem de satélites e na ferramenta proposta SatBudgets para dar apoio à um processo de
atividades do projeto conceitual. Partindo da modelagem SysML, a ferramenta SatBudgets gera
automaticamente balanços (mecânico, elétrico, entre outros) de projeto de satélite. Isto de-
monstra sua viabilidade na construção dos sistemas e pode diminuir o impacto das alterações
ao logo do projeto. Um estudo de caso foi aplicado ao projeto do satélite universitário ITASAT.
No atual estágio, MDE e SatBudgets estão em fase de implantação experimental e gra-
dual ao ciclo de engenharia para projetos futuros de satélites bem como na sua utilização em
outros sistemas diversos como veículos lançadores de satélites como já demonstrado com o IAE
(Instituto de Atividades Espaciais) em São José dos Campos.
60 bilizar um estudo científico da emoção na fala. Estudos [Matte 2006] [Barbosa 2006] mostram 61
que a utilização de softwares desenvolvidos por ou com pesquisadores da área, contexto co-
XI Worshop sobre Software Livre
2. Semioetiquetas Fonológicas
Faculdade de Letras – Universidade Federal de Minas Gerais (UFMG) -
1
Av. Antônio Carlos, 6627 – 31.270-970 – Belo Horizonte – MG – Brasil O conceito de semioetiqueta fonológica, aqui proposto, é uma abordagem da análise de fala que
2
TecnoLivre – Cooperativa de Tecnologia e Soluções Livres trabalha com os segmentos de som de fala como objetos. Uma semioetiqueta fonológica é uma
Universidade Federal de Lavras (Ufla) – 37.200-000 – Lavras – MG – Brasil classe de objetos cujos atributos são dados intrínsecos ou adquiridos. Os objetos são segmentos
anacrifm@ufmg.br, rubens@tecnolivre.com.br de som de fala, que podem ter tamanhos diferentes. Adotamos aqui o segmento VV (vogal a vo-
gal) [Marcus 1981] e o grupo acentual como base para a segmentação [Barbosa 2006]. Esses ob-
jetos são obtidos pela análise automática de trechos de fala acompanhados de uma transcrição
Abstract. Setfon is an open source web information system for data collecting in the
ortográfica [Barbosa 1996]. O grupo acentual é uma sequência de segmentos VV obtida pela aná-
field of speech sciences. Its architecture is component based and it emerged from the necessity
lise quantitativa e qualitativa da duração dos segmentos VV, portanto, uma análise dependente
of raising up the acoustic-phonological data quantity in order to solve the problem of statistic
já dos atributos da original. Assim, define-se a classe Segmento VV e a classe Grupo Acentual. Por
significance in expression of emotion in speech studies. Moreover, Setfon is on-line and, then,
um lado, os dados intrínsecos são variáveis independentes, essencialmente quantitativas e que
allows the creation of a national database about this matter, that can be easily shared between
podem ser obtidos por análise acústica automática. Já os dados adquiridos são parâmetros cuja
the researchers in speech sciences.
automatização ainda é uma possibilidade pouco explorada até o momento, dada sua dependên-
cia de uma análise qualitativa. Atualmente é possível dispor de parsers sintáticos e semânticos
Resumo. Setfon é um sistema de informação web livre para coleta de dados em pes-
para auxiliar o processo, mas a análise semiótica é totalmente manual.
quisas sobre a fala. O sistema aborda o problema central através de componentes e nasceu da
Tanto o Grupo Acentual quanto o segmento VV podem receber atributos intrínsecos e
necessidade de aumentar significativamente a quantidade de dados acústico-fonológicos para
adquiridos, embora de naturezas diferentes. O primeiro atributo adquirido do segmento VV é
atender a demandas de estudos estatísticos de expressão da emoção e de estilo. Além disso,
uma etiqueta fonológica, obtida pela transcrição fonológica e segmentação do texto correspon-
por ser on-line, o Setfon permite a criação um banco de dados nacional sobre o tema, compar-
dente a um som de fala. Somente com a obtenção desta etiqueta fonológica é possível calcular
tilhável entre pesquisadores das ciências da fala.
seus atributos intrínsecos (duração, intensidade, frequência, configuração formântica) e criar
os objetos da classe Grupo Acentual. Já os objetos desta última possuem atributos intrínsecos
da ordem do prosódico, tais como taxa de elocução, curva melódica variação de intensidade,
1. Introdução variação de duração, posição do acento e número de segmentos VV. Os atributos adquiridos são
totalmente dependentes do tipo de resultado almejado, podendo advir de parsers sintáticos,
O presente trabalho discorre sobre o desenvolvimento de um software livre para auxiliar pes-
parsers semânticos e/ou de análises de conteúdo específicas como análise semiótica tensiva ou
quisas relacionadas à fonoestilística e a outros estudos da fala, o Setfon. O problema central
narrativa, só para citar alguns exemplos.
é a interdisciplinaridade: não é viável trabalhar com fonoestilística, em especial expressão da
emoção na fala, sem ultrapassar os limites dos estudos linguísticos dos sons de fala, compre-
endidos pela fonética e pela fonologia. O processamento do Setfon, portanto, visa a elaboração
3. Etiquetador Fonológico
de tabelas para análise estatística com a obtenção de conjuntos de dados aos quais chamamos
semioetiquetas fonológicas.
A concepção do semioetiquetador fonológico seguiu o processo de desenvolvimento de sof-
Pesquisas nesta área são sustentadas por avaliações estatísticas resultantes do cruza-
tware baseado em componentes proposto por [Brito et all 2005], sendo dividida nas seguintes
mento de dados intrínsecos ao som (como os dados acústicos) e dados adquiridos (avaliações
etapas: (i) análise do domínio; (ii) modelagem dos componentes; (iii) implementação dos com-
semióticas, normalmente relacionadas à cultura do falante ou a circunstâncias da coleta de
ponentes; (iv) testes dos componentes; (v) implementação da interface Web; e (iv) teste de in-
amostras de fala). Esta vasta gama de variáveis envolvidas implica um corpus de magnitude
tegração. Durante o desenvolvimento de cada componente do Setfon, foram criadas interfaces
muito superior à usualmente alcançada [Matte 2004].
para utilização individual (scripts em shell), tornando possível realizar testes independentes. A
Assim, automatizar o processo de coleta de dados é uma etapa imprescindível para via-
Programação Orientada a Componentes é uma abordagem técnica para solucionar problemas
de forma computacional através de estruturas lógicas atômicas e bem definidas através de in-
*
Projeto financiado pelo CNPq, processo número 473616/2007-6. terfaces. Componentes encapsulam processos ditos de caixa preta, ou seja, processos que não
62 exigem conhecimento aprofundado da estratégia de implementação, já que, a nível modular, 3.1. Segmentação do Som 63
interface gráfica e restrito a rodar um arquivo por vez. O Setfon reescreveu o código em PHP
XI Worshop sobre Software Livre
Referências Bibliográficas
Barbosa, P. A. (1996) “At least two macrorhythmic units are necessary for modeling Brazilian
Portuguese duration: emphasis on segmental duration generation” In: Cadernos de Estudos
Lingüísticos, 31, 1, Brasil.
Barbosa, P. A. (2006) “Incursões em torno do Ritmo da Fala”, Campinas: Pontes Editores, v.1,
1.
Brito, P. H. da S.; Barbosa, M. A. M.; Guerra, P. A. de C. & Rubira, C. M. F. (2005) “Um Processo
para o Desenvolvimento Baseado em Componentes com Reuso de Componentes”, Brasil.
Marcus, S. M. (1981) “Acoustic determinants of Perceptual –Center (p-center) location” In: Per-
A inserção de etiquetas semióticas ainda é feita diretamente pelo pesquisador, por meio
de uma interface web que organiza os dados como atributos da classe Grupo Acentual. A in-
terface possibilita a replicação automática de entradas e a criação de diferentes atributos con-
forme o tipo de análise. Criada para a inserção de dados provenientes de análises semióticas,
a interface confere à ferramenta maleabilidade suficiente para a inserção de qualquer tipo de
dado qualitativo para fins de análise estatística paramétrica ou não, por exemplo, informações 4
Agradecimentos: Adelma Araújo, Alexandro Meireles, Cecilio C. Fraguas, Conrado Mendes, Daniervelin Pereira, Leo-
nardo Amaral, Marcos P. Rebello, Mônica Santos e Plínio A. Barbosa.
circunstanciais sobre a coleta e/ou classificações do corpus [Mendes 2009]. 5
http://www.sourceforge.net/projects/setfon
67
Sessão III
Engenharia de Software
Avaliando a Qualidade de Conjuntos de Teste de Software de Código Aberto por meio de Critérios de Teste Estruturais
Este trabalho está inserido no contexto deste projeto e atua em uma das atividades do
Avaliando a Qualidade de Conjuntos de Teste de projeto que visa obter informações sobre FLOSS de modo a “encontrar” requisitos de qualidade
Software de Código Aberto por meio de Crité- que possam ser importantes no estabelecimento de confiança (trustworthness) a esses pro-
rios de Teste Estruturais* dutos. Neste contexto, o trabalho está voltado para avaliação da qualidade dos conjuntos de
testes criados pelas comunidades de desenvolvimento de FLOSS utilizando, para isso, critérios
de testes estruturais. O objetivo é identificar o estado da prática da comunidade na criação de
Adriana Rocha1, André Mesquita Rincon1, 2, 3, Márcio Eduardo Delamaro4,
conjuntos de teste e, posteriormente, contribuir no estabelecimento de uma estratégia de teste
José Carlos Maldonado4 e Auri Marcelo Rizzo Vincenzi1
que contribua para a evolução dos conjuntos de teste existentes.
1
Instituto de Informática – INF/UFG – Goiânia, GO O texto está organizado da seguinte forma: a Seção 2 dá uma visão geral sobre os
{adriana,andrerincon,auri}@inf.ufg.br processos de teste e desenvolvimento utilizados pelas comunidades que desenvolvem FLOSS;
a Seção 3 mostra os resultados parciais obtidos na avaliação de projetos FLOSS; e, por fim, a
1
Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas
Seção 4 traz as considerações finais e trabalhos futuros.
Universidade do Tocantins – UNITINS – Palmas, TO
3
Instituto Federal de Educação, Ciência e Tecnologia do Tocantins – IFTO –
Paraíso do Tocantins, TO 2. Processo de Teste em FLOSS
4
Instituto de Ciências Matemáticas e de Computação – ICMC/USP – São Carlos, SP –
Embora ainda seja pequena a utilização de produtos FLOSS pela indústria, existe uma tendên-
{delamaro, jcmaldon}@icmc.usp.br
cia de crescimento na adoção desse tipo de software uma vez que um número cada vez maior
de indústrias opta por tais soluções. Um dos fatores que dificulta a adoção é a incerteza nos
Abstract. QualiPSo (Quality Platform for Open Source Software) is an international pro- processos de garantia de qualidade adotados em tais produtos. Pode-se dizer que os processos
ject investigating Free/Libre/Open Source Software (FLOSS) products to define quality requi- de teste empregados pelas comunidades que desenvolvem FLOSS ainda é uma incógnita. Um
rements that are important in establishing the trustworthiness of these products. One of the estudo realizado por Zhao e Elbaum (2003) mostrou que 80% dos desenvolvedores de FLOSS
supported activities of QualiPSo aims at evaluating the quality of the test sets developed by the não criavam planos de teste.
FLOSS community. This paper presents the results of employing structural testing criteria as a Um dos agravantes para isso é que as atividades de análise e projeto de produtos FLOSS
measure of quality for such a test sets aiming at identifying the state-of-practice played by the não são bem planejadas pelas comunidades de desenvolvimento, seja devido à visão de curto
FLOSS community and contributing to the establishment of an incremental testing strategy to prazo e não comercial que caracteriza muitos projetos FLOSS, ou pelo fato de muitos terem sido
evolve the test sets. iniciados para resolver problemas particulares de um usuário sem uma visão de longo prazo e
uma percepção real da inovação e grau de evolução que o projeto poderia ter no futuro [Mo-
rasca et al. 2009].
1. Introdução Mockus et al. (2000) afirmam que o desenvolvimento de FLOSS é radicalmente diferente
da indústria de Closed Source Software (CSS) pois, no desenvolvimento de FLOSS, encontram-
Existem sinais de uma ampla divulgação dos conceitos de código aberto na indústria e no go- se as seguintes características: o trabalho não é atribuído (as pessoas se comprometem ao
verno. Grandes empresas como IBM e Nokia já consideram código aberto em suas operações trabalho que optaram por realizar); não existe um sistema explícito e nem um plano de projeto;
de pesquisa e desenvolvimento. Governos dos países membros da União Européia, do Brasil e e não há um cronograma ou uma lista de produtos a serem construídos. No entanto, apesar de
da China consideram Free/Libre/Open Source Software (FLOSS) como uma oportunidade chave não seguir um processo formal de desenvolvimento, os resultados obtidos pelas comunidades
para o desenvolvimento de uma indústria de software independente [QualiPSo 2008]. No en- que desenvolvem FLOSS são considerados equivalentes ou até superiores os das organizações
tanto, ainda há uma relutância quanto à adoção massiva de FLOSS devido, principalmente, à que desenvolvem CSS. Alega-se, por exemplo, que os defeitos são encontrados e resolvidos
falta de “confiança” nesses produtos [QualiPSo 2008]. Segundo Meirelles [Meirelles 2003], em mais rapidamente, pois há “muitos olhos” voltados para os problemas. Além disso, acredita-se
termos quantitativos, a utilização de FLOSS ainda é expressivamente inferior à utilização de que o código é escrito com mais cuidado e criatividade, porque os desenvolvedores estão tra-
alternativas proprietárias. balhando apenas em coisas para as quais eles tem uma verdadeira paixão, além da exposição
A falta de “confiança” está relacionada a aspectos jurídicos, de qualidade (por exemplo: de suas habilidades de programação [Raymond 2000] apud [Mockus et al. 2000].
ciclo de desenvolvimento, suporte, confiabilidade e desempenho) e também por um modelo Decorrente dessas características do modelo de desenvolvimento de FLOSS, como pou-
de negócio que possa garantir sustentabilidade. Neste contexto, o QualiPSo [QualiPSo 2008] é co foco no planejamento e na especificação de requisitos, quando um produto FLOSS evolui, ge-
considerado um projeto integrado que visa consolidar a aliança natural da indústria e do gover- ralmente o principal artefato que é considerado nesse processo de evolução é o código fonte.
Segundo Zaidman et al. (2008) acredita-se que códigos de teste e códigos de produção
* Este trabalho conta com o apoio do CNPq (Processo 570917/2008-5), CAPES e Projeto QualiPSo -Quality Platform for
Open Source Software (Grant Number IST-FP6-IP-034763). devam ser desenvolvidos e mantidos de forma síncrona, pois: 1) Novas funcionalidades devem
70 ser testadas o mais breve possível no processo de desenvolvimento, por exemplo, por meio 71
Tabela 1. Número de requisitos gerados e cobertura dos testes para cada
de testes de unidade, muito disseminados na comunidade FLOSS; 2) Quando mudanças são um dos critérios da ferramenta JaBUTi.
XI Worshop sobre Software Livre
Avaliando a Qualidade de Conjuntos de Teste de Software de Código Aberto por meio de Critérios de Teste Estruturais
aplicadas, a preservação de comportamento do software precisa ser verificada; e 3) Mesmo
quando as alterações preservam o comportamento, os testes podem ser invalidados, pois pe-
quenas alterações no código de produção podem ter sérias consequências sobre a cobertura
de código que o conjunto de teste irá abranger [Elbaum et al. 2001].
Sendo assim, considera-se que o processo de construção de conjuntos de testes em-
pregados pelas comunidades, deve ser analisado na busca por requisitos que possam auxiliar
no estabelecimento de confiabilidade a produtos FLOSS e até mesmo na melhoria do processo
de geração de casos de teste.
3.1. Resultados parciais
3. Experimentos realizados A Tabela 2 apresenta as médias de cobertura obtidas para cada um dos cinco produtos
avaliados. Cada coluna mostra o número de requisitos cobertos (COV Req) pelo número total de
A grande maioria dos produtos FLOSS investigados possuem um conjunto de teste funcional requisitos gerados (Total Req) para os critérios de testes independentes de exceção e a porcen-
(caixa-preta) criado pela comunidade de desenvolvimento visando a verificação constante do tagem de cobertura obtida para cada projeto. Por exemplo, para o Log4J, considerando o critério
FLOSS desenvolvido. Uma pergunta natural seria: “Qual a qualidade desses conjuntos de tes- All-Nodesei foram cobertos 2.173 de um total de 5.280 requisitos, ou seja, uma cobertura de
tes funcionais?”. Nos experimentos realizados, a qualidade de tais conjuntos foi avaliada em 41,08%. Analogamente, a Tabela 3 mostra os resultados de cobertura para os critérios de testes
relação a critérios de teste estruturais visando investigar qual a porcentagem de cobertura dependentes de exceção. De modo geral, observa-se que os resultados gerais apresentados nas
de código de produção que é efetivamente executada pelos testes funcionais disponibilizados Tabelas 2 e 3 deixam claro que a qualidade dos conjuntos de testes desenvolvidos é questionável
juntamente com o código fonte de produtos FLOSS. do ponto de vista da cobertura obtida. A maior cobertura obtida foi em relação ao critério All-
Tal avaliação foi conduzida com a ferramenta de teste JaBUTi1, que apóia a aplicação Nodes-ei para o Log4J (41,08%). Em muitos casos a cobertura foi inferior a 5% dos requisitos e em
de oito critérios estruturais, sendo que seis deles foram utilizados: All-Nodesei, All-Nodesed, All- outros não chegou a atingir nem 1% (como no caso do critério todos os arcos do subconjunto de-
Edgesei, All-Edgesed, All-Usesei e All-Usesed. Para mais informações sobre a ferramenta, o leitor pendente de exceção do JMeter – Tabela 3). Tal situação demonstra a necessidade de definição de
interessado pode consultar a página do projeto. A diferença entre os critérios ei (exception uma estratégia de testes incremental para a melhoria da qualidade desses conjuntos de teste.
independent) e ed (exception dependent) é decorrente da presença de tratamento de exce-
Tabela 2. Cobertura de código para critérios independentes de exceção.
ção da linguagem Java. Ou seja, os critérios seguidos de ei produzem requisitos de teste que
All-Nodes-ei All-Edges-ei All-Uses-ei All-Pot-Uses-ei
podem ser executados sem a necessidade de ocorrência de exceção, ao passo que aqueles Critério/OSS
Cov Reg/Total Reg(%) Cov Reg/Total Reg(%) Cov Reg/Total Reg(%) Cov Reg/Total Reg(%)
seguidos de ed geram requisitos que, necessariamente, exigem que uma exceção seja gerada
8.029 / 40.703 7.476 / 45.098 19.720 / 126.246 67.847 / 458.843
HSQLBD
para serem cobertos. (19,73%) (16,58%) (15,62%) (14,79%)
Até o momento, cinco projetos foram analisados (HSQLDB, JMeter, JUnit, Log4J e PMD). 7.845 / 20.462 5.461 / 19.317 10.935 / 41.180 33.615 / 130.547
JMeter
(38,34%) (28,27%) (26,55%) (25,75%)
O processo de avaliação foi conduzido da seguinte forma: 1) download da última versão dispo-
nível do software; 2) configuração do ambiente de teste (variáveis, diretórios, bibliotecas); 3) 1.475 / 6.243
JUnit 608 / 1.951 (31,16%) 380 / 1.436 (26,46%) 631 / 2.624 (24,05%)
(23,63%)
preparação das aplicações (instrumentação do código) para que as informações de cobertura
2.173 / 5.290 1.956 / 5.173 4.243 / 10.416 10.286 / 26.881
de código possam ser coletadas durante a execução dos testes; 4) execução dos testes uni- Log4J
(41,08%) (37,81%) (40,74%) (38,26%)
tários do JUnit com a ferramenta JaBUTi; 5) coleta e análise dos resultados; e 6) Geração de 7.938 / 21.184 6.858 / 23.249 13.331 / 57.552 38.404 / 252.261
PMD
relatórios de cobertura por método, por classe e por projeto. (37,47%) (29,50%) (23,16%) (15,22%)
Com intuito de apresentar o processo de coleta e análise de dados que foi realizado,
considere o programa Log4J que é composto por 276 classes, totalizando 8.543 LOC (Lines of
Tabela 3. Cobertura de código para critérios Dependentes de Exceção
Code). Parte das classes desse programa e a cobertura do seu conjunto de teste funcional são
All-Nodes-ei Cov Reg/ All-Edges-ei Cov Reg/ All-Uses-ei Cov Reg/ All-Pot-Uses-ei Cov
apresentadas na Tabela 1. Por exemplo, para a classe SMTPAppender, o critério All-Nodesei Critério/OSS
Total Reg(%) Total Reg(%) Total Reg(%) Reg/Total Reg(%)
gerou 144 requisitos de teste (#REQ) dos quais 49 foram cobertos (#COV); uma cobertura de 3.591 / 38.032
HSQLBD 141 / 1.942 (7,26%) 49 / 6.513 (0,75%) 256 / 2.750 (9,31%)
34% (%COV). Para a classe SocketAppender(terceira classe), considerando o mesmo critério, (9,44%)
foram gerados 49 requisitos mas nenhum deles foi executado pelos casos de teste. Esses da- JMeter 51 / 1.541 (3,31%) 39 / 4.863 (0,80%) 52 / 2.093 (2,48%) 276 / 15.301 (1,80%)
dos foram coletados para todas as classes de determinado programa e a média de cobertura JUnit 12 / 156 (7,69%) 9 / 184 (4,89%) 13 / 183 (7,10%) 29 / 632 (4,59%)
em relação a cada critério foi calculada. Os resultados são apresentados nas Tabelas 2 e 3. Log4J 30 / 544 (5,51%) 10 / 973 (1,03%) 41 / 604 (6,79%) 186 / 3.773 (4,93%)
1.689 / 20.285
PMD 325 / 2.039 (15,94) 121 / 3.814 (3,17%) 388 / 3.590 (10,81%)
(8,33%)
1
Ferramenta de teste JaBUTi. Disponível em: http://ccsl.ime.usp.br/en/project/jabuti/.
72 Além dos dados de cobertura, a ferramenta JaBUTi também computa, para cada classe, • Concluir a estratégia de testes incremental visando aumentar a qualidade dos con- 73
uma série 27 métricas orientadas a objeto, dentre elas, a complexidade ciclomática de McCabe, juntos de testes empregados pelas comunidades de desenvolvimento de FLOSS.
XI Worshop sobre Software Livre
Avaliando a Qualidade de Conjuntos de Teste de Software de Código Aberto por meio de Critérios de Teste Estruturais
o acoplamento entre objetos, falta de coesão entre métodos, dentre outras. Um exemplo de
parte dessas métricas computadas para o Log4J é mostrado na Tabela 4.
Referências
principalmente em função de que boa parte do código legado de tais aplicações está escrita
XI Worshop sobre Software Livre
ser incluído uma chamada ao subprograma (no caso do Fortran, através do comando CALL). Se
XI Worshop sobre Software Livre
Extrair uma subrotina consiste em escolher um fragmento de código e transformá-lo no Na linguagem Fortran, variáveis podem ser declaradas de diferentes maneiras (uma
corpo de um novo subprograma substituindo o fragmento original por uma chamada ao novo variável por declaração ou múltiplas variáveis de mesmo tipo na mesma declaração). Essa mis-
subprograma. A principal problemática de longos trechos de código é a excessiva informação tura de gêneros de declarações (comum em grandes projetos de software, onde estão envolvi-
que fica oculta pela complexidade da lógica associada [Fowler et al. 1999]. dos diferentes desenvolvedores) pode dificultar a leitura de código, uma vez que uma grande
Para extrair uma subrotina é preciso indicar um conjunto de linhas no editor de código lista de variáveis pode ser declarada, e quando o leitor do código chega ao final de tal lista, não
e um nome para a nova subrotina. A ação de refatoração deve verificar dentro do conjunto lembra mais qual era o tipo de declaração das variáveis, por exemplo.
de comandos selecionados para extração se existe a utilização de variáveis. Se não existirem 1
Fortran permite que as variáveis utilizadas não sejam previamente declaradas, neste caso considerando que variá-
variáveis, a refatoração deve simplesmente declarar um novo subprograma (SUBROUTINE) con- veis que iniciem com as letras I..N sejam do tipo INTEGER e as demais do tipo REAL.
78 A mecânica de funcionamento desta refatoração consiste em percorrer as ASTs em bus- Em relação à ferramenta Photran, existem ainda diversas questões em aberto que vão 79
ca de nós que representem a declaração de variáveis. Quando alguma ocorrência de nós desse desde otimizações nos mecanismos que analisam o código-fonte, até novos recursos para a
XI Worshop sobre Software Livre
3.6. Dado para Parâmetro Aho, A. V., Lam, M. S., Sethi, R., and Ullman, J. D. (2006). Compilers: Principles, Techniques, and
Tools. Addison Wesley, 2 edition.
No Fortran, uma variável pode ser inicializada de diversas formas e, usualmente, em Beaton, W. and des Rivieres, J. (2006). Eclipse Platform Technical Overview. Technical report,
programas existem variáveis que são constantes, isto é, tem o seu valor definido no início do The Eclipse Foundation.
código e nunca é alterado. No Fortran, existe um atributo que serve para esse fim, chamado Boniati, B. B., Charão, A. S., and Stein, B. O. (2009). Automação de Refatorações para Progra-
parameter. Uma variável declarada como parameter tem um valor constante que o compilador mas Fortran de Alto Desempenho. In X Simpósio em Sistemas Computacionais, pages 71–78,
propaga diretamente em todo o código-fonte. Porém, as vezes essa declaração é confundida São Paulo, Brasil. SBC.
com a declaração do tipo data. Uma variável do tipo data é uma variável estática. Quando se De, V. (2004). A Foundation for Refactoring Fortran 90 in Eclipse. Dissertação de mestrado, Uni-
pensa em paralelizar um código-fonte, a fim de melhorar o desempenho, as variáveis estáticas versity of Illinois, Urbana-Champaign, EUA.
podem ser acessadas concorrentemente por várias linhas de execução, dificultando a progra- Eclipse.org (2010). Photran - An Integrated Development Environment for Fortran. Disponível
mação. Por isso é vantajoso usar parameter quando se quer apenas tornar uma variável cons- em: http://www.eclipse.org/photran/. Acesso em junho de 2010.
tante em todo o código-fonte. Fowler, M., Beck, K., Brant, J., Opdyke, W., and Roberts, D. (1999). Refactoring: Improving the
A mecânica de funcionamento desta refatoração consiste em percorrer as ASTs em busca Design of Existing Code. Addison Wesley.
de nós que representem declarações do tipo data. Quando um nó encontrado não possuir seu Johnson, R., Foote, B., Overbey, J., and Xanthos, S. (2006). Changing the Face of High-Perfor-
valor inicial modificado ao longo do código-fonte, nos deparamos com uma variável que deveria mance Fortran Code. A White Paper.
ser declarada com o tipo parameter, pois foi usada apenas para propagar um valor constante em Opdyke, W. (1992). Refactoring Object-Oriented Frameworks. Tese de doutorado, University of
todo o código. Portanto, tal nó deve ser substituído na AST por um novo nó com a declaração da Illinois, Urbana-Champaign, EUA.
variável do tipo parameter, preservando o nome e valor inicial que continha anteriormente. Rissetti, G., Charão, A. S., and Boniati, B. B. (2010). Incorporação de Novas Refatorações para
Linguagem Fortran no IDE Eclipse. In X Escola Regional de Alto Desempenho, pages 233–
236, Passo Fundo, Brasil. SBC.
4. Considerações Finais Vanter, M. L. V. D., Post, D. E., and Zosel, M. E. (2005). HPC Needs a Tool Strategy. In Second
International Workshop on Software Engineering for High Performance Computing System
As extensões foram desenvolvidas gradualmente e disponibilizadas aos desenvolvedores do Applications, pages 55–59, St. Louis, EUA. ACM.
Photran. Algumas delas já se encontram integradas à versão oficial da ferramenta. Watson, G. R. and DeBardeleben, N. (2006). Developing Scientific Applications Using Eclipse.
Em trabalhos anteriores [Boniati et al. 2009, Rissetti et al. 2010] buscou-se avaliar o im- Computing in Science and Engineering, 8(4):50–61.
pacto do uso de técnicas de refatoração em aplicações escritas em Fortran, utilizando o código-
fonte de uma aplicação cedida pelo Laboratório de Micrometeorologia, vinculado à Universidade
Federal de Santa Maria. Essa aplicação foi escrita em Fortran 77, e é atualmente utilizada para
analisar grandes conjuntos de dados captados por sensores em estações meteorológicas. As
refatorações foram aplicadas de forma isolada, e combinadas. Em todos os casos os resultados
produzidos pela compilação e execução do código refatorado e do código não refatorado foram
os mesmos, sendo que o código refatorado apresenta melhor estruturação e legibilidade sem
comprometer o desempenho da aplicação (requisito importante em aplicações científicas).
A utilização do Photran como ferramenta de apoio à codificação e à automatização de
técnicas de refatoração merece destaque como contribuição do trabalho. Ferramentas como
o Photran representam um importante avanço no sentido de se preencher a lacuna existente
entre a grande quantidade de código Fortran e o limitado número de ferramentas livres com
técnicas de refatoração integradas.
80 Dentro da concepção de que softwares de apoio à Engenharia de Requisitos deveriam 81
conter funcionalidades que incitem a colaboração, ou seja, dar suporte à Engenharia Social
XI Worshop sobre Software Livre
mínimo de formalização.
Scacchi (2004), por sua vez, alerta que a participação de usuários não-treinados na mo-
delagem de software pode ser frustrante. Contudo, o autor apontava como tendência na área
1. Estrutura do artigo as técnicas de participação contínua dos usuários, o que tange inclusive às características da
modelagem de software contínua praticada pelas comunidades de FLOSS estudadas por Gasser
Neste artigo serão abordadas algumas das teorias que fundamentam a ferramenta apre- et al. (dez. 2003), apresentada adiante.
sentada, tais como a Engenharia Social de Requisitos, a Modelagem Sociotécnica de Software e Em relação à Modelagem Sociotécnica de Software, segundo Scacchi (2004), ela está
a modelagem contínua inerente às comunidades de Software Livre. Em seguida, é explanado o intimamente ligada à participação direta dos usuários-finais no processo de modelagem de
contexto em que a proposta do Nodipo surgiu e é detalhada a proposta, a qual é complementa- sistemas. Esse tipo de abordagem distingue-se dos métodos de modelagem da Engenharia de
da por uma descrição do processo de levantamento de requisitos pensado pelos idealizadores Software tradicional, que dão maior ênfase às atividades e responsabilidades dos engenheiros
da ferramenta. Por fim, são apresentadas as conclusões e indicado o direcionamento de traba- de software, os quais utilizam ferramentas (computacionais) de modelagem e notações para
lhos futuros do tema em questão. obter e formalizar os resultados deste tipo de processo.
2. Engenharia Social de Requisitos e Modelagem Sociotécnica 3. A modelagem contínua inerente às comunidades de FLOSS
de Software
No sentido de entender a dinâmica de desenvolvimento de FLOSS, o estudo de Gasser
Hammouda et al. (2008 apud LOHMANN et al., 2009) definem a Engenharia Social de et al. (2003) levantou algumas tendências, relativas a esse tipo de desenvolvimento, que são
Requisitos como a aplicação de processos, métodos e ferramentas que possibilitem a criação, o contrárias às práticas convencionais de desenvolvimento de software para sistemas de grande
gerenciamento, a implantação e o uso de software por comunidades em ambientes online. porte. São elas:
82 • As especificações das funcionalidades, da usabilidade e da estrutura do software to e em que não há acesso a software que possa servir de exemplo, a ausência de conhecimen- 83
não são conhecidas quando de sua modelagem e desenvolvimento. Ao invés dis- to dos requisitos tende a prejudicar o desenvolvimento de softwares livres para atender àquela
XI Worshop sobre Software Livre
que imaginam que o software deveria apresentar, conduzidos por um questionário dos debates, consolidados nas respostas ao questionário e nas novas versões das
XI Worshop sobre Software Livre
Dado o cenário apresentado, em resumo o Nodipo foi modelado de maneira que seja SCACCHI, Walt. Understanding the Requirements for Developing Open Source Software Sys-
O programa MPS.BR é baseado no modelo MPS, o qual é alicerçado nos conceitos de maturi-
1
Faculdade de Computação – Instituto de Ciências Exatas e Naturais (ICEN) –Universida-
dade e capacidade de processo para a avaliação e melhoria da qualidade e produtividade de
de Federal do Pará (UFPA), Rua Augusto Corrêa, 01, Belém –PA – Brasil
produtos de software e serviços correlatos. Dentro desse contexto, o modelo MPS possui três
bernardojses@gmail.com, srbo@ufpa.br componentes: Modelo de Referência (MR-MPS), Método de Avaliação (MA-MPS) e Modelo de
Negócio (MN-MPS) [Softex, 2009a]. O Modelo de Referência de processo é um modelo que com-
preende as definições de processos em um ciclo de vida. Ele é descrito em termos de propósitos
Abstract. Spider-MPlan is a free software tool which supports the Measurement process
e resultados esperados.
in the F maturity level of MPS.BR quality program. This paper presents a systematic workflow,
O MR-MPS define sete níveis de maturidade. A escala de maturidade se inicia no nível G
the purpose, the context and operation of this tool, and the results that can be obtained from
e progride até o nível A. Os níveis de maturidade estabelecem patamares de evolução de pro-
the use of this one.
cessos, caracterizando estágios de melhoria da implementação de processos na organização. O
progresso e o alcance de um determinado nível de maturidade do MR-MPS se obtêm quando são
Resumo. Spider-MPlan é uma ferramenta de software livre para apoio ao processo
atendidos os propósitos e todos os resultados esperados dos respectivos processos e os resulta-
de Medição constante nível F do programa MPS.BR. Este artigo apresenta o fluxo de negócio
dos esperados dos atributos de processo estabelecidos para aquele nível [Softex, 2009b].
sistematizado da ferramenta, bem como o seu propósito, contexto de funcionamento e os re-
Entres os processos descritos no MR-MPS está o de Medição, o qual se encontra no nível
sultados que podem ser obtidos com a utilização deste produto.
de maturidade F. O seu propósito é: coletar, armazenar, analisar e relatar os dados relativos aos
produtos desenvolvidos e aos processos implementados na organização e em seus projetos,
de forma a apoiar os objetivos organizacionais [Softex, 2009b]. O processo de Medição possui
1. Introdução
sete resultados esperados: MED1, objetivos de medição são estabelecidos e mantidos a par-
tir dos objetivos de negócio da organização e das necessidades de informação de processos
A Engenharia de software é uma disciplina que inclui processos, métodos e ferramentas. É uma
técnicos e gerenciais; MED2, um conjunto adequado de medidas, orientado pelos objetivos de
tecnologia em camadas, onde o alicerce é a camada de processo, a qual forma a base para o
controle gerencial e estabelece um contexto no qual os métodos técnicos são aplicados e os arte- medição, é identificado e definido, priorizado, documentado, revisado e, quando pertinente,
fatos (modelo, documento, dados, relatórios, formulários, etc.) produzidos [Pressman, 2006]. atualizado; MED3, os procedimentos para a coleta e o armazenamento de medidas são espe-
De forma geral, o Processo de Software pode ser definido como um arcabouço de tarefas cificados; MED4, os procedimentos para a análise das medidas são especificados; MED5, os
para se construir softwares de alta qualidade. O Processo de Software ainda é constituído de um dados requeridos são coletados e analisados; MED6, os dados e os resultados das análises são
arcabouço de processo, o qual descreve um conjunto de atividades que são aplicáveis a todos armazenados; MED7, os dados e os resultados das análises são comunicados aos interessados
os projetos de software, independentemente de seu tamanho e complexidade. A complemen- e são utilizados para apoiar decisões.
tação do arcabouço de processo é realizada pelas atividades guarda-chuva, elas ocorrem ao O Guia de Implementação do nível F [Softex, 2009b] recomenda em detalhes o que
longo do processo e tem o foco na gestão, monitoramento e controle de determinado projeto pode ser feito para que cada resultado esperado deste processo seja atendido. O processo de
[Pressman, 2006]. Medição do MR-MPS é fundamentado na abordagem GQM - Goal-Question-Metric [Basili et al,
A Medição é uma atividade guarda-chuva de um arcabouço de processo. Pode ser consi- 1994], que possibilita que um programa de medição seja baseado em necessidades específicas
derada como ato ou processo de atribuição de um número ou a categoria a uma entidade para e aos objetivos do processo ou da organização.
descrever um atributo dessa entidade [IEEE, 1998]. A medição permite obter um entendimento
do projeto e do processo, fornecendo um mecanismo para uma avaliação objetiva [Pressman,
2006]. A implementação desta atividade pode ser obtida a partir de programas para a melhoria 3. A Ferramenta Spider-Mplan
do processo (modelos e normas de qualidade).
Em 2003 o programa MPS.BR (Melhoria do Processo de Software Brasileiro) [Softex, 2009a] A Spider-MPlan é uma ferramenta de licença GPL – General Public License [GNU, 2010] voltada
foi concebido com o objetivo de prover a melhoria de processo ao software brasileiro com um especificamente para o processo de Medição do MR-MPS, o qual traz uma solução para geren-
custo acessível, para que possa também se adequar a realidade das micro/pequenas empresas. ciamento de medidas e dos resultados esperados provenientes desse processo. Trata-se de
Neste contexto, este artigo objetiva apresentar a Spider-MPlan, uma solução de ferra- um ambiente voltado para a Web, onde é possível coletar, analisar medidas e gerar relatórios
menta de software livre para apoio ao processo de Medição do MPS.BR. A Seção 2 aborda o pro- para atender o propósito do processo de Medição. Além de ser uma ferramenta de apoio para
88 instituições que implementam o modelo MRMPS, é também voltada para empresas que já o Caso não sejam validadas, os objetivos da medição são revistos e o ciclo das ativi- 89
adotaram, mas desejam facilitar e aprimorar este processo.O seu desenvolvimento foi pautado dades se reinicia a partir desse ponto;
XI Worshop sobre Software Livre
A ferramenta Spider-MPlan utiliza o conceito de ator para especificar quem realiza de-
terminada atividade no processo de Medição. Existem quatro tipos de atores: o Analista de
Medição detém a maior parte das atividades do processo como definição da abordagem GQM,
definição dos procedimentos de análise e coleta, coletar, analisar, elaborar/divulgar/revisar re-
latórios; Alta Administração, responsável pelas atividades da definição de um abstraction
sheet e, conjuntamente com a Gerência de Projetos, validam métricas, apreciam relatórios,
analisam resultados e podem estabelecer tomadas de decisão; Usuário de Medição, respon-
sável pela atividade de fornecer a base de dados para a coleta de métricas; e Bibliotecário
de Medição, responsável por qualquer dado manipulado pela ferramenta. É importante que se
ressalte que um usuário da ferramenta pode representar mais de um ator, dependendo do grau
de envolvimento com o processo de medição.
Com o objetivo de ser mais aderente ao processo de Medição descrito pelo MPS.BR, várias
atividades são definidas conforme o fluxo da Figura 1. Um detalhamento destas atividades é apre-
sentado abaixo, bem como o resultado esperado do MPS.BR que estas atividades são aderentes. Figura 1. Fluxo de Atividades do Processo de Negócio da Spider-MPlan
• Definir Necessidades de Informação: esta atividade consiste em definir “o que • Selecionar Projeto: caso um projeto já esteja registrado, é necessário que ele
é importante (necessário)” para Organização saber com o processo de Medição no seja selecionado para ser incluído no processo de Medição da organização;
sentido de atender os objetivos organizacionais (aderente ao MED1); • • Alocar Objetivos de Medição ao Projeto: esta atividade consiste em alocar
• Elaborar Abstraction Sheet: consiste em realizar uma folha de entrevista com a os objetivos de medição, antes definidos para o nível organizacional, para nível de
Alta Administração da Organização com a finalidade de extrair, estruturar informações projeto. Geralmente o Analista de Medição realiza algumas alterações sobre tais
(como fatores de qualidade, fatores de variação) relevantes ao processo de Medição; objetivos para atender as especificidades de um determinado projeto;
• Definir Objetivos de Medição: congruente à abordagem GQM sugerida pelos • • Definir Procedimento de Coleta: detalha como será realizada a coleta sobre
resultados esperados do MR-MPS, esta atividade estabelece o(s) objetivo(s) bem os dados das métricas fornecidas. O procedimento ajuda a assegurar que os dados
definido(s) para o processo de Medição, feito a partir da análise das necessidades corretos estão sendo coletados e a explicitar que as necessidades de informações
de informação e do Abstraction Sheet elicitado (aderente ao MED1); e os objetivos das medições estão sendo atendidos. Neste procedimento alguns
• Definir Questões: assim como a atividade anterior, é parte da abordagem GQM, dados são especificados: freqüência, responsável, ferramenta usada, instruções,
ela consiste em levantar questões, as quais são perguntas e indagações que per- locais de armazenamento e preservação da coleta (aderente ao MED3);
mitem facilitar o alcance dos objetivos de medição definidos; • • Definir Armazenamento das Medidas: esta atividade consiste em especificar
• Definir Medidas da Organização: esta atividade consiste em definir quais me- onde (o repositório) as métricas serão armazenadas. A definição de um repositório
didas (métricas) serão utilizadas no processo de Medição. As medidas definidas no contexto de medição ajuda a assegurar que os dados estarão disponíveis e
devem conseguir responder as questões levantadas (aderente ao MED2); acessíveis para uso futuro. O repositório deve ser definido em termos de locali-
• Validar Medidas: após serem definidas, as medidas devem ser revisadas para zação, procedimentos de inserção e de acesso aos dados, incluindo permissões e
verificar se estão de acordo com os objetivos do processo de Medição em questão. responsabilidades (aderente ao MED3);
90 • Definir Procedimento de Análise: esta atividade consiste em detalhar como 5. Considerações Finais 91
A ferramenta Spider-MPlan tem como foco apoiar o processo de Medição do MPS.BR. Com base Basili. V., Caldiera, G., Rombach, H. (1994) “GQM: Goal Question Metric Paradigm”. Encyclope-
nisso, espera-se a obtenção de alguns resultados: dia of Software Engineering.v.2.p: 527 – 532.
Estácio, B., Valente, K. (2009) “Uma análise da aderência de ferramentas para apoio ao Proces-
• agilidade na implementação do processo de Medição do MPS.BR nas organizações, so de Medição segundo o MPS.BR”. TCC - IFPA/TADS. Belém.
onde normalmente é adotado o uso de planilhas eletrônicas em conjunto com do- GNU Project. “General Public License”. Disponível em: http://www.gnu.org/licenses/gpl.html.
cumentos impressos e não sistematizados, dificultando o gerenciamento e arma- Acessado em 25 de outubro de 2010.
zenamentos das medidas; Instituto de Engenheiros Eletricistas e Eletrônicos (1998) “IEEE Std. 1061-1998-Standard for a
• facilidade no acompanhamento do processo de Medição; Software Quality Metrics Methodology”. NJ: IEEE Standards Dept.
• conferir qualidade à medição como um todo através de um processo de negócio Lavazza, L. (2000) “Providing Automated Support for the GQM Measurement Process”. IEE Software.
bem definido, baseado no guia de implementação do modelo MR-MPS; Mendes, H., Ávilla, J. “Uma proposta de Integração dos Resultados Esperados do Nível F do MPS.
• um repositório de métricas estritamente estruturado para melhorar gerenciamento BR”. UFPA/CBCC. Trabalho de Conclusão de Curso. Belém.
dos produtos de trabalho obtidos; Nascimento, P., Lira, W. “Uma proposta de Integração dos Resultados Esperados do Nível G do
• possibilidade de customização da ferramenta, por se tratar de um software livre, MPS.BR”. UFPA/CBCC. Trabalho de Conclusão de Curso. Belém.
para atendimento as diferentes culturas organizacionais. Oliveira, S. R. B. (2009) “SPIDER: Uma Proposta de uma Solução Sistêmica de Apoio à Imple-
mentação do modelo MPS.BR”. Projeto de Pesquisa. Belém.
Com a ferramenta Spider-MPlan espera-se que o processo de Medição também possa Parviainen, P., Komi-sirviö, S., Ronkainen, K. (2001) “Measurement Automation: Methodological
ser totalmente distribuído geograficamente, permitindo que os dados provenientes das me- Background and Practical Solutions: A Multiple Case Study”. 7th International Software Met-
didas possam ser consultados pelos devidos interessados a qualquer instante e de maneira rics Symposium METRICS 2001. London.
simples. Isso implica em um melhor acesso às informações geradas pelo processo, facilitando Pressman, R. S. (2006) Engenharia de Software, McGraw-Hill, 6 ed., Rio de Janeiro.
assim a tomada de decisões para atendimento aos objetivos organizacionais. SOFTEX (2009a) “MPS.BR – Guia Geral”.
SOFTEX (2009b) “MPS.BR – Guia de Implementação Parte 2”.
93
Sessão IV
Sistemas Baseados na Web
disponibilização de certificados para eventos. A seção 3 traz uma breve discussão acerca de
XI Worshop sobre Software Livre
1
Programa de Educação Tutorial (PET) O processo de geração, controle e disponibilização de certificados de participação e organi-
zação de eventos, em formato digital, envolve demandas, como controle de participantes e
2
Laboratório de Sistemas de Computação (LSC)
organizadores, envio e armazenamento dos certificados, que podem ser automatizadas através
Curso de Ciência da Computação – Universidade Federal de Santa Maria (UFSM) de ferramentas computacionais.
Este cenário foi visualizado no grupo PET do Curso de Ciência da Computação (PET-CC)
Campus UFSM – 97105-900 – Santa Maria – RS – Brasil
da Universidade Federal de Santa Maria (UFSM). O grupo promove eventos, como palestras,
{apereira, vgarcia, andrea}@inf.ufsm.br oficinas e minicursos, sendo necessário gerar e distribuir um elevado número de certificados de
participação e organização.
A partir dos casos de uso mais frequentes do grupo, generalizados para outras institui-
Abstract. Attendance certificates in digital format are increasingly popular in confer-
ções promotoras de eventos, pode-se observar requisitos para um sistema gerenciador de certi-
ences and similar events. The digital certificates replace and improve the traditional, printed
ficados em formato digital: uso de formato de arquivo acessível aos usuários; reaproveitamento
ones, but raise a need for computational tools to assist the process. This paper presents the
de informações dos participantes; disponibilidade de reemissão de certificados; certificados
development of certificaPET, a Web based system for generation, storage, delivery and valida-
flexíveis em termos de leiaute, para diferentes eventos; validação dos certificados; e controle
tion of attendance certificates in digital format. The system was developed using free software
de acesso aos certificados emitidos.
tools and is distributed as an open source software.
A partir dos requisitos levantados pelo PET-CC, gerou-se o modelo de dados represen- A etapa de geração do certificado foi implementada através de um Servlet HTTP. A
tado na figura 2. requisição do cliente para geração do certificado é feita através de método POST, fornecendo
98 como parâmetros uma indicação de evento ou palestra, identificador do evento ou palestra, 5. Estudo de Caso 99
1. Introdução
Onde Xp são as variáveis interpoladas, Xi : valor da variável de i-ésima localidade vi-
A agricultura mundial está enfrentando desafios cada vez maiores, como a expansão urbana, as
zinha; di: distância euclidiana entre o i-ésimo ponto de vizinhança e o ponto amostrado, B o
competições globais de comércio e a baixa margem de lucro. Para manter a competitividade e
expoente de ponderação (peso) e n é o número de pontos utilizados para interpolar a amostra.
a viabilidade econômica, os agricultores necessitam aumentar a eficiência na produção (YANG,
O expoente de ponderação pode ser selecionado e o mesmo possui efeitos sobre os resultados
et al., 2010).
estimados.
A região Sul do Brasil tem uma economia basicamente dependente da agricultura e,
Para realizar a comparação foi utilizada a análise de regressão entre os valores dos
deste modo, existe uma estreita ligação entre as alterações climáticas e o ciclo de vida de de-
dados climatológicos interpolados pelos diferentes expoentes com o objetivo de se obter o
terminadas culturas. Alterações drásticas no regime de chuvas podem provocar danos muitas
coeficiente de correlação (r) e o índice de concordância de Wilmont (c).
102 Conhecendo-se esses indicadores foi determinado o índice de desempenho (Id), que A partir da analise dos expoentes, definiu-se o grau 5 para aplicação no modelo inter- 103
pode ser calculado por: polador, por apresentar os melhores desempenhos para as variáveis: temperatura, umidade
XI Worshop sobre Software Livre
relativa do ar, ponto de orvalho e pressão atmosférica. As demais variáveis não poderão ser
Id = rc disponibilizadas através do sistema por não alcançarem desempenho satisfatório.
Após definir o modelo de interpolação, foram onde foram determinadas as algumas fun-
Onde Id é o índice de desempenho, r é o coeficiente de correlação e c é o índice de ções básicas do sistema, como a as formas de consulta e obtenção dos dados meteorológicos e
concordância de Wilmont. as regiões de interpolação a partir das estações do INMET.
O índice de desempenho tem a finalidade de avaliar o desempenho do método propos- A Figura 1 ilustra a distribuição da rede de pontos de coleta de dados meteorológicos do
to, considerando as seguintes classes de interpretação, conforme Tabela 1 (COSTA, 2004). INMET e a delimitação das áreas de carências formadas a partir destas bases conhecidas.
3. Resultados e Discussão
A Figura 3 demonstra as formas de consultas no sistema, sendo que pode ser realizada
de duas formas: (i) ao clicar sobre o mapa do Rio Grande do Sul, o sistema registra as coordena-
das em pixel do ponto desejado e determina a área a qual pertence (Figura 1) e posteriormente
calcula as distâncias entre as bases conhecidas, que servirão de ponderação para o cálculo da
interpolação; (ii) na opção dados, o usuário informa a localização do local (altitude, longitude e
altitude) e o sistema realiza as operações de determinação da região de interpolação e calcula
a interpolação dos dados.
Silva et al. (2008), desenvolveu um sistema web para consulta de dados meteorológicos
do Estado do Piauí, o qual acessa o banco de dados da Embrapa Meio-Norte e disponibiliza as
informações dos municípios que possuem estações. O autor afirma que os sistemas web dina-
mizam a distribuição e manipulação das variáveis climática.
4. CONCLUSÕES
Um Portal Web Livre para Disseminação de Informações sobre Sistemas Embarcados Críticos
São Paulo (ICMC/USP) e que agrega atualmente mais de 250 pesquisadores oriundos de nove
Um Portal Web Livre para Disseminação de universidades e de sete empresas. Dessa forma, observa-se que o INCT-SEC, e até mesmo
Informações sobre Sistemas Embarcados Críti- diversos outros projetos de pesquisa, podem, muitas vezes, ter como característica a distri-
cos buição geográfica dos pesquisadores. Ou seja, observa-se que a comunidade científica tem-se
articulado de maneira que as pesquisas sejam conduzidas conjuntamente por pesquisadores
Ricardo A. M. Reimão, Elisa Y. Nakagawa, Thiago Bianchi, José C. Maldonado pertencentes a diferentes e diversas instituições. Com isso, observa-se também a necessidade
da proposição e disponibilização de mecanismos que possibilitem e facilitem a colaboração e a
troca de informação entre pesquisadores, tanto aqueles pertencentes ao projeto quanto aque-
Instituto de Ciências Matemáticas e de Computação (ICMC) - USP les que tenham interesse nas linhas de pesquisa investigadas no projeto.
Assim, o principal objetivo deste trabalho é apresentar uma rede de colaboração dispo-
rreimao@grad.icmc.usp.br, {elisa,tbianchi,jcmaldon}@icmc.usp.br nibilizada por meio de um portal web e que tenha a possibilidade de agregar conhecimento e
a troca de informações de caráter científico entre pesquisadores. Especificamente, essa rede,
Resumo. A disponibilização de informações e compartilhamento de conhecimentos, chamada de RIPSEC (Rede de Inovação e Prospecção em Sistemas Embarcados Críticos)1, foi
inclusive de cunho científico, por meio da Internet têm-se tornado extremamente relevan- desenvolvida no contexto do INCT-SEC e, portanto, possibilitando a colaboração de pesquisa-
tes para a sociedade atual. Assim, o principal objetivo deste artigo é apresentar a RIPSEC dores ligados às pesquisas em Sistemas Embarcados Críticos (SEC). Vale destacar também que
(Rede de Inovação e Prospecção em Sistemas Embarcados Críticos), uma rede de colabo- essa rede foi concebida inteiramente baseada na filosofia de software livre [FSF, 2010], visando
ração disponibilizada por meio de um portal web, cujo código fonte é livre, e que visa agre- seu uso futuro em outras áreas de pesquisa.
gar informações sobre pesquisas, desenvolvimento e uso de Sistemas Embarcados Críticos O restante do artigo está organizado da seguinte forma: na Seção 2 é apresentado o
(SEC). Essa rede é uma das contribuições do INCT-SEC, um projeto de pesquisa que visa contexto em que se insere este trabalho; na Seção 3 é apresentada a RIPSEC; na Seção 4 é feita
principalmente elevar o nível de conhecimento, competência e qualidade no Brasil sobre o uma breve discussão sobre as expectativas e limitações da RIPSEC; por fim, na Seção 5 são
desenvolvimento de SEC. apresentadas as conclusões e os trabalhos futuros.
timular as ações integradas entre instituições do governo, do setor produtivo e do terceiro setor desenvolvedores. Esse CMS fornece diversas ferramentas para a criação de um portal web.
XI Worshop sobre Software Livre
Um Portal Web Livre para Disseminação de Informações sobre Sistemas Embarcados Críticos
relacionados ao Agronegócio. Apesar de sua relevância, no tocante ao portal em si, observa-se Fornece também suporte aos Sistemas de Gerenciamento de Banco de Dados (SGBD), tais
que esse não é caracterizado como software livre, pois seu código não está disponível para a como o MySQL8, que foi adotado como SGBD da RIPSEC, por ser também largamente dis-
comunidade. seminado entre a comunidade de desenvolvimento web. Por ser um portal web, há a neces-
Destaca-se também que este trabalho está sendo desenvolvido no contexto do INCT- sidade de um servidor web. Assim, dentre as diversas opções de servidores web avaliados,
SEC, um projeto financiado pelo CNPq, FAPESP e pelo Ministério da Ciência e Tecnologia e foi escolhido o Apache, uma vez que é considerado um servidor estável e confiável, além de
que tem como principal objetivo elevar o nível de conhecimento, competência e qualidade oferecer constantes atualizações pela sua comunidade de desenvolvedores.
no país no tocante ao desenvolvimento de SEC, incluindo veículos autônomos móveis e
robôs móveis. Essas tecnologias têm grande importância para apoiar o desenvolvimento 3.2. Funcionalidades da RIPSEC
de áreas estratégicas do país, como a do meio ambiente, a de segurança e defesa e a de
agricultura. O INCT-SEC possui um portal6 para o relacionamento de seus membros pesqui- A identificação das funcionalidades, bem como o layout da RIPSEC, foi realizada por
sadores, visando à organização do andamento do projeto; contudo, não é objetivo desse meio de reuniões com a participação de diversos membros pesquisadores do INCT-SEC, bem
portal estender-se à comunidade como um todo. como um jornalista que tem a específica função de postar conteúdos por meio da RIPSEC.
Vale também destacar que o desenvolvimento foi realizado de forma incremental, ou seja, à
medida que os requisitos surgiam, esses eram implementados. Essa abordagem de desen-
3. Desenvolvimento da RIPSEC volvimento teve bons resultados e parece ser adequada para o desenvolvimento de portais
web, pelo menos aqueles com as características apresentadas pela RIPSEC. O desenvolvi-
A RIPSEC foi concebida motivada pela falta de mecanismos que pudessem tratar de conte- mento foi realizado em um período de quatro meses, acompanhado de reuniões semanais
údos científicos, mais especificamente, conteúdos ligados às pesquisas em SEC. Destaca-se e com a participação de uma pesquisadora coordenadora do portal, um desenvolvedor, um
que a ideia de um portal web para prospecção de conhecimento com possibilidade de rela- jornalista e membros do INCT-SEC que atuaram como usuários do portal.
cionamento entre os usuários é inédita no contexto de SEC. Na Figura 1 é mostrada a página principal da RIPSEC. Vale destacar que as opções do
É importante ressaltar que existem projetos similares ao apresentado neste traba- menu, destacadas à esquerda, foram resultado de uma discussão aprofundada sobre quais
lho, tais como o próprio portal do INCT-SEC. No entanto, o conteúdo encontrado nesses funcionalidades deveriam estar disponíveis em um portal com essa finalidade. Dessa forma,
portais é específico para uma determinada parcela da comunidade (muitas vezes, somente por meio do portal, podem-se disponibilizar, entre outros, notícias, publicações, eventos e
aos membros pesquisadores do projeto em si). Assim, com o desenvolvimento da RIPSEC, outras informações diretamente relacionadas aos SEC. Na Figura 2, é mostrada em mais
espera-se a disseminação de conhecimento para toda a comunidade não restringindo so- detalhes, as possibilidades desse menu. Além disso, o portal possibilita livre acesso aos
mente aos membros pesquisadores de um dado projeto de pesquisa. conteúdos sobre SEC à comunidade, possibilitando inclusive aos interessados cadastro no
Além de viabilizar a disseminação e agregação de informações para a comunidade portal, o que possibilita o mapeamento da distribuição geográfica de pessoas interessadas
em geral, o projeto RIPSEC tem a iniciativa de disponibilizar seu código fonte como software em nível nacional e até internacional.
livre, sob licença GPL (General Public License) [FSF, 1999], o que possibilita ser modificado Para mapear essa distribuição, está sendo utilizada a Árvore Hiperbólica9, uma fer-
e reutilizado em outras áreas de conhecimento. Ainda seguindo a filosofia de software livre, ramenta livre que tem por finalidade exibir de maneira interativa, por meio de grafos, o
todo o desenvolvimento do portal é baseado em ferramentas e tecnologias livres, que é uma relacionamento entre os integrantes da RIPSEC cadastrados no portal. O portal também
prática comum no desenvolvimento de softwares livres. disponibiliza informações sobre os relacionamentos dos integrantes da rede por meio do
ScriptLattes10 [Mena-Chalco, 2009]. Essa ferramenta, também um software livre, possibi-
3.1. Tecnologias Utilizadas lita, dentre outras funcionalidades, a extração e compilação de produções bibliográficas,
produções técnicas, orientações de alunos, bem como a geração do grafo de colaborações
Por ser um portal no qual o requisito principal é a atualização constante de conteú- para os integrantes da rede que estejam cadastrados na plataforma Lattes11. A critério de
dos, optou-se pela utilização de um Content Management System (CMS) [DocForge, 2010], ilustração, na Figura 3 é mostrado o grafo de colaboração dos integrantes da RIPSEC. Os
o que facilita as customização e disponibilização de conteúdos. Diversos CMS livres foram nós do grafo correspondem a cada pesquisador e as ligações, a indicação das publicações
avaliados, sendo escolhido o Drupal7, por esse estar sendo largamente utilizado e contar que ocorreram em conjunto. Com a disponibilização da Árvore Hiperbólica e o grafo de co-
com uma diversidade de material de apoio, o que pode ser apontado como um ponto posi- laboração gerado pelo ScriptLattes, a ideia é ter uma visão dos pesquisadores e integrantes
tivo em um projeto de software livre. Além disso, o Drupal é considerado um CMS estável, envolvidos e interessados na área de SEC.
8 http://www.mysql.com/
9 http://christ.bouthier.free.fr/
6 http://www.inct-sec.org/ 10 http://scriptlattes.sourceforge.net/
7 http://drupal.org/ 11 http://lattes.cnpq.br/
110 4. Breve Discussão 111
XI Worshop sobre Software Livre
Um Portal Web Livre para Disseminação de Informações sobre Sistemas Embarcados Críticos
Atualmente, a RIPSEC encontra-se em fase final de implementação e já está disponibilizada
para a comunidade em geral. Uma vez que houve um estudo minucioso sobre o conteúdo a ser
disponibilizado por esse portal, espera-se que ele venha a atender a todas as necessidades de
uma comunidade virtual que possa se formar e que queira compartilhar conhecimento sobre as
pesquisas, desenvolvimento e utilização de SEC.
Quanto às limitações, há ainda a necessidade de uma investigação mais detalhada
sobre o impacto da RIPSEC para a comunidade de interessados no tema em questão. Há tam-
bém a necessidade de utilizar esse portal em outros contextos, ou seja, em outras áreas de
pesquisa, para observar a viabilidade e facilidade de reuso do código fonte dessa rede, que é
disponibilizada como software livre.
5. Conclusão
Figura 1: Página principal da RIPSEC A principal contribuição deste trabalho foi apresentar o portal RIPSEC que visa a viabilizar e
facilitar a troca de informações e conhecimento no domínio de SEC a toda a comunidade in-
teressada no tema, inclusive pesquisadores, alunos de graduação e mesmo alunos do ensino
médio. Por utilizar somente tecnologias livres em seu desenvolvimento, bem como por ser um
software livre, a RIPSEC poderá contribuir e facilitar a replicação dessa experiência em outras
áreas de conhecimento.
Como trabalhos futuros, pretende-se conduzir estudos de modo a observar o impacto
da RIPSEC quanto ao seu uso e seu objetivo, bem como o seu reuso e configuração para outros
contextos, mostrando sua relevância e contribuição para a comunidade de software livre com
um portal web livre.
Agradecimentos
Referências
1
Departamento de Informática – Universidade Federal do Paraná
O xadrez é um jogo de tabuleiro que existe desde a antiguidade. Além de servir como O ambiente de jogo provê meios de interação entre usuários no qual os participantes
entretenimento, apresenta pontos positivos no desenvolvimento do raciocínio lógico, no apren- podem conversar, iniciar partidas de um determinado jogo, acompanhar partidas em andamen-
dizado e na tomada de decisões. Com a popularização da Internet, surgiram servidores de to, conectar em salas de conversas, entre várias outras funcionalidades. Para isso é necessário
xadrez que permitem pessoas geograficamente distantes jogarem xadrez via web utilizando um sistema robusto para troca de mensagens entre os jogadores e o servidor de jogo.
um tabuleiro eletrônico. Com as necessidades apresentadas foi proposta uma arquitetura de ambiente de jogo
Dentro desse contexto de aprendizado foi desenvolvido o projeto Apoio Computacional baseado no modelo cliente-servidor que inclui três módulos principais: o ambiente de comu-
ao Ensino de Xadrez nas Escolas [DIRENE et al. 2004]. O objetivo do projeto é permitir que uma nicação, os componentes de jogo e a interface usuário. Essa arquitetura está representada na
significativa parcela da classe estudantil, dos níveis fundamental e médio, tenham acesso de figura 1. A figura apresenta clientes ou interface do usuário que se conectam ao ambiente de
forma rápida e frequente a efeitos positivos que o jogo de xadrez oferece. Para isso foi usado o comunicação. Na parte à direita se encontram os vários componentes que cuidam das funcio-
“estado da arte” em termos de Tecnologia Educacional baseada em Software Livre, para desen- nalidades de jogo como o analisador de partidas e o gerenciador de desafios.
volver novos módulos e dar manutenção as ferramentas de Software responsáveis por auxiliar O ambiente de comunicação é responsável por todas as trocas de mensagens existen-
o ensino de xadrez nas escolas. tes dentro do sistema. A principal funcionalidade desse módulo é encaminhar as mensagens de
uma entidade, seja usuário ou servidor, para outra entidade. Para isso é necessário mecanis-
1
http://xadrezlivre.c3sl.ufpr.br mos de autenticação e controle de acesso. Como estamos tratando de um ambiente de jogo é
114 desejável que esse ambiente ofereça meios para os usuários interagirem uns com outros para o EjabberD oferece interfaces para ligar componentes externos que estendem as funcionalidades 115
que possam iniciar partidas. do sistema. Neste trabalho, o servidor de jogo é considerado um componente do servidor.
XI Worshop sobre Software Livre
O servidor de jogo ou servidor de xadrez usado é o novo ChessD[ChessD 2007] que foi
totalmente desenvolvido dentro do escopo do projeto. O servidor de xadrez2 foi implementado
em linguagem C++ como um componente do EjabberD. O mesmo recebe um estado de tabu-
Figura 1. Arquitetura geral leiro e o movimento que será realizado e retorna um novo estado para os jogadores, caso o
movimento esteja de acordo com as regras do jogo.
Os componentes de jogo ficam responsáveis por tratar todas as requisições relacio- Atualmente não existe um protocolo definitivo para jogos de xadrez sobre XMPP. Uma
nadas às partidas. Isso inclui todas as mensagens relacionadas aos desafios, as partidas em proposta de protocolo foi definida no JEP-xxxx3, entretanto este protocolo é usado para partidas
andamento, partidas adiadas, funções administrativas de xadrez dentre outras funcionalidades entre jogadores sem um controle intermediário, por exemplo, o servidor de xadrez. Devido a
presente no jogo. Como o ambiente de comunicação já oferece um mecanismo de comunicação isso foi criado um protocolo de xadrez específico4 para a implementação onde existe um servi-
robusto, os componentes ficam totalmente responsáveis pelas partidas sem se preocupar em dor que interpreta e responde sobre este protocolo.
tratar o tráfego de mensagens. Um fluxo de mensagens de desafio pode ser mostrado nas mensagens a seguir.
A quantidade de componentes no sistema pode variar de acordo com as necessidades.
Na figura 1 existem componentes que cuidam somente dos desafios, outro que gerencia os
torneios, outro que analisa partidas e assim por diante. Com isso é possível inserir e remover
componentes sem afetar outras funcionalidades.
A interface usuário é o módulo cliente. O cliente provê meios de enviar e receber mensa-
gens do ambiente de forma amigável ao usuário. A interface tem que ser projetada e implementa-
da para que o usuário faça uso do ambiente de forma transparente. O ideal é que o cliente possa
ser desenvolvido em qualquer linguagem de programação e funcione em qualquer plataforma. O jogador “raphaelr” envia um desafio para o jogador “eduari”. No entanto a requisição
Toda a arquitetura faz um uso intensivo de troca de mensagens entre as entidades. é enviada ao servidor para que o mesmo possa autorizar o desafio. Caso esteja autorizado, o
Devido a essa necessidade é preciso utilizar protocolos robustos de comunicação que tratem servidor envia uma requisição de desafio para “eduari”:
mensagens de requisições, confirmações e erros. Alguns protocolos de comunicação como o
HyperText Transfer Protocol (HTTP)[Fielding et al. 1999] ou eXtensible Messaging and Presence
Protocol (XMPP)[Saint-Andre 2004] são exemplos de protocolos robustos de comunicação que
podem ser usado nessa arquitetura.
4. XadrezLivre
O XadrezLivre é o ambiente de jogo que implementa a arquitetura proposta. Nessa se- O jogador “eduari” aceita o desafio enviando a mensagem:
ção está descrito os detalhes de implementação, ferramentas usadas e soluções aplicadas para
implantação do sistema. Cada módulo será descrito nas subseções seguintes.
4.1. Comunicação
que existem várias informações nas mensagens como a categoria de jogo (“standard”),
XI Worshop sobre Software Livre
5
http://git.c3sl.ufpr.br/gitweb?p=chessd/bosh.git
119
Sessão V
Software Básico e Sistemas Operacionais
que é ligada ao programa durante a geração do seu código executável. No Linux, a glibc1 é a
XI Worshop sobre Software Livre
A Seção 4 apresenta uma análise dos principais resultados obtidos na etapa experimental. Fi- A diferença é que o ptmalloc2 é baseado na versão dlmalloc 2.7.0 enquanto o nedalloc é base-
XI Worshop sobre Software Livre
2. Alocadores Investigados
3. Estudo Experimental
Este trabalho compara o desempenho de cinco implementações de alocadores de me-
mória de propósito geral: Hoard (versão 3.8), ptmalloc (versão 2), TCMalloc (versão 1.5), je- O plano experimental utilizado nesse estudo considera a execução de 30 replicações
malloc (versão linux_20080827) e nedmalloc (versão 1.05). Esses alocadores foram selecio- por teste, onde cada replicação tem duração de 10 minutos. Para eliminar os efeitos dos
nados devido à disponibilidade de código fonte, além de alguns deles terem sido usados em erros experimentais [Montgomery 2005], utilizou-se a média aritmética das replicações.
trabalhos correlatos que demonstram seu melhor desempenho frente a diversos outros aloca- O instrumental usado contou com uma bancada de teste com a seguinte configura-
dores, que por esse motivo foram desconsiderados nesse estudo. ção: 3 computadores, onde um executa o MySQL versão 5.0.41 e os outros dois o software
O Hoard [Berger et al. 2000] foi desenvolvido com o principal objetivo de se ter aloca- db_Stress [Kravtchuk 2007], o qual foi utilizado para gerar cargas de trabalho no servidor.
ção com alto desempenho em programas com múltiplas threads executando em computadores O db_Stress foi desenvolvido para auxiliar na avaliação de desempenho de gerenciadores
com múltiplos processadores. Esse algoritmo implementa uma área de heap global para todas de banco de dados por meio da realização de diferentes tipos de transações em intervalos
as threads, além de uma área privativa para cada uma delas. Essas duas áreas possibilitam
de tempo pré-determinados. As transações geradas pelo db_Stress são submetidas a um
ao Hoard minimizar os efeitos de contenção de heap (múltiplas threads concorrendo pela mes-
banco de dados constituído de cinco tabelas que simulam uma aplicação convencional.
ma área de memória), além de um tipo específico de fragmentação de memória denominado
Essas tabelas possuem relacionamento entre si, índices e uma população de milhões de
blowup [Berger et al. 2000]. O Hoard também é reconhecido pela redução nos efeitos do falso
linhas. As transações utilizadas consistem em operações select, insert, delete e update. No
compartilhamento de memória (isto é, quando threads executando em diferentes processado-
total, são cinco transações que são executadas ininterruptamente por um período definido
res compartilham equivocadamente a mesma linha de cache).
pelo usuário no momento da sua execução. Maiores detalhes sobre o modelo de dados e as
O ptmalloc [Gogler 2006] é um algoritmo baseado no DLMalloc [Lea 1996]. O ptmalloc
transações utilizadas pelo db_Stess podem ser obtidos em [Kravtchuk 2007].
incorpora recursos voltados para multiprocessadores executando programas com múltiplas
Ao final do período definido para o teste, o db_Stress reporta a quantidade de tran-
threads de controle, os quais não eram amplamente utilizados quando seu antecessor DLMalloc
sações realizadas, e o tempo demandado por cada transação. O computador do servidor de
foi desenvolvido. Tal qual o Hoard, o ptmalloc implementa múltiplas áreas de heap para diminuir
banco de dados (Intel Core 2 Duo 2.40 GHz; 2 GB RAM) e os computadores clientes (Pen-
a contenção de memória em programas multithreaded. Diferente do Hoard, esse não trata o
tium 4 3.4 GHz; 1 GB RAM) executando o db_Stress foram interconectados por uma rede
problema de falso compartilhamento de memória. Atualmente, existem três versões do pt-
100 Mbps. Tanto nos clientes quanto no servidor adotou-se o sistema operacional Linux
malloc. A versão 2, que é o padrão na glibc do Linux, é o alocador considerado nesse trabalho.
Debian 5, kernel 2.6.26-1-686, executando em runlevel 3. A versão da glibc usada foi 2.7-
O TCMalloc [Ghemawat e Menage 2010], diferente dos antecessores, busca minimizar
18lenny2.
a contenção de acesso ao heap usando uma abordagem híbrida. Para objetos pequenos (_
O MySQL foi testado com cada um dos cinco alocadores selecionados (ver Seção 2).
32K), sua abordagem é similar aos anteriores, onde cada thread possui sua própria porção do
Para isso, em cada teste do MySQL o ligador dinâmico (dynamic linker) do Linux foi instruído
heap. Contudo, para objetos grandes (_ 32K) o TCMalloc utiliza um heap global, minimizando
a contenção entre as múltiplas threads por meio de spin-locks de fina granularidade. Segundo a carregar um dos alocadores avaliados. Isso é realizado usando a variável de ambiente
Ghemawat e Menage (2010), algoritmos baseados apenas em heaps locais por threads sofrem LD_PRELOAD (ex. export LD_PRELOAD= libjemalloc_mt.so.0). Como resultado, o MySQL pas-
com excessiva utilização de memória e fragmentação. sa a usar as funções (malloc(), free(), etc.) de alocação da biblioteca compartilhada e não
O jemalloc [Evans 2006] foi desenvolvido para ser o alocador padrão no FreeBSD em da glibc. Alternativamente, pode-se ligar (linking) estaticamente o alocador de interesse ao
substituição ao seu antecessor PHKalloc [Kamp 1998], que como o DLMalloc foi criado quando código do MySQL. Em ambos os casos, o desempenho do MySQL é influenciado pelo algorit-
sistemas multiprocessados e multithreading não eram populares. Um dos principais objetivos mo de alocação ligado a ele no momento dos testes.
desse alocador é reduzir a contenção de bloqueio em aplicações multithreaded executando em
múltiplos processadores. Similar aos demais algoritmos, esse usa múltiplas porções do heap
(arenas), por padrão quatro vezes o número de processadores. Cada thread é associada a um 4. Análise dos Resultados
conjunto de arenas, onde uma arena é escolhida seguindo uma política round-robin, reduzindo
assim a probabilidade de contenção. Os metadados de alocações muito grandes (_ 1M) são As Tabelas 1 a 4 apresentam a classificação do desempenho dos alocadores com respei-
armazenados em uma única estrutura de árvore rubro-negra (red-black tree), e a suposição to aos principais testes realizados. Os alocadores estão ordenados com o melhor desempenho
adotada pelos autores desse algoritmo é que por não ser freqüente esse tamanho de alocação, no topo. Verifica-se que em todos os casos avaliados, a ordem de classificação foi a mesma.
a manutenção de uma única estrutura para todas as threads não seria um problema para a Como descrito na Seção 3, essa análise considera os valores médios das 30 replicações, onde
escalabilidade do algoritmo. cada replicação (teste) teve duração de 10 minutos.
124 com difícil generalização para aplicações do mundo real, esse trabalho comparou o desem- 125
Tabela 1. Transações Tabela 2. Total Tabela 3. Total de Tabela 4. Tempo
para segundo de Transações Leituras/Escritas Médio de select penho dos alocadores avaliados com o popular gerenciador de banco de dados MySQL, muito
XI Worshop sobre Software Livre
Referências
A Tabela 1 refere-se ao número de transações executadas por segundo durante um tes-
te. Nesse teste são realizadas todas as operações (select, insert, delete e update). Na Tabela 2 Attardi, J. and Nadgir, N. (2003) “A Comparison of Memory Allocators in Multiprocessors”, http://
tem-se o número total de transações executadas por teste, considerando as quatro operações developers.sun.com/solaris/articles/multiproc/multiproc.html
citadas anteriormente. A Tabela 3 mostra a quantidade de operações de leitura (select) reali- Berger, E. D., McKinley, K.S., Blumofe, R.D. and Wilson, P.R. (2000) “Hoard: a scalable memory
zadas por teste. O db_Stress reportou os mesmos valores para operações de escrita (insert, allocator for multithreaded applications”, 9th Int’l conf. on architectural support for program-
delete e update). A Tabela 4 lista os tempos médios para operações do tipo select. Para as de- ming languages and operating systems ACM SIGARCH Computer Architecture News, v.28:5,
mais operações, as diferenças nos tempos das operações individuais não foram significativas, p.117-128
sendo o melhor algoritmo (jemalloc), em média, 2,5 microssegundos mais rápido do que o pior Douglas, N. (2010) “nedmalloc”, www.nedprod.com/programs/portable/nedmalloc.
resultado (ptmalloc2). Evans, J. (2006) “A Scalable Concurrent malloc() Implementation for FreeBSD”.
Dentre os cinco alocadores avaliados, o jemalloc apresentou os melhores resultados em Ghemawat, S. and Menage, P. (2010) “TCMalloc: Thread-Caching Malloc”, http://goog-perftools.
praticamente todos os testes. Em especial, sua maior influência no desempenho do MySQL se sourceforge.net/doc/tcmalloc.html.
deu no número total de transações realizadas. Já o pior desempenho ficou com o ptmalloc2, o Gloger, W (2006) “ptmalloc”, http://www.malloc.de/en/
atual alocador padrão na glibc. Considerando que a maioria dos usuários utilizam o MySQL com Kamp PH (1998) “Malloc(3) revisited”. USENIX and FREENIX, p. 193–198.
o alocador padrão da glibc, esses resultados sugerem que uma melhor alternativa seria a uti- Kravtchuk, D. (2007) “db_Stress Benchmark”, http://dimitrik.free.fr/db_STRESS.html
lização do jemalloc. O jemalloc realizou 15 transações por segundo a mais do que o ptmalloc2 Lea, D. (1996) “A Memory Allocator,” http://gee.cs.oswego.edu/dl/html/malloc.html
(ver Tabela 1). Essa diferença em um período de operação, por exemplo, de 24 horas, seria de Lever, C. and Boreham, D. (2000) “malloc() Performance in a Multithreaded Linux Environment”,
aproximadamente um milhão e trezentas mil transações. Considerando uma aplicação real, In: Usenix 2000, p.301-311.
trata-se de uma diferença importante. Esse maior desempenho do jemalloc sobre o número de Masmano, M., Ripoll, I. and Crespo, A. (2006) “A comparison of memory allocators for real-time
transações também explica os resultados das Tabelas 2 e 3. Com relação a operações individu- applications”, Proc. of 4th Int’l workshop on Java technologies for real-time and embedded
ais, vale destacar o resultado obtido para as operações de consulta (select). O jemalloc sobres- systems, ACM Int’l Conference Proceeding Series, vol. 177, p.68-76
saiu com uma diferença para o ptmalloc2 de aproximadamente 11 microsegundos por consulta Montgomery, D.C. (2005) Design and Analysis of Experiments, 6 ed., J. Wiley & Sons.
(ver Tabela 4). Isso significa que em um segundo, o jemalloc consegue realizar 7,6 transações Vahalia, U. (1995) UNIX Internals: The New Frontiers, Prentice Hall.
de consulta a mais do que o ptmalloc2. Ao final de 24 horas, por exemplo, essa diferença per- Zorn, B. and Grunwald, D. (1994) “Evaluating models of memory allocation”, ACM Transactions
mitiria ao MySQL (com o jemalloc), executar aproximadamente 662,000 transações a mais do on Modeling and Computer Simulation (TOMACS), vol.4:1,p.107-131
que com o ptmalloc2.
5. Conclusão
da contenção (número de processos aguardando pelo recurso) não é considerado, mas apenas
XI Worshop sobre Software Livre
1. Introdução
2. Índice de Carga no Linux
Índices de carga são informações de estado mantidas pelo kernel de um sistema ope-
racional. Esses índices indicam a carga corrente do sistema e são muito usados para decidir
Como discutido na Seção 1, o loadavg é o índice de carga padrão do kernel Linux
sobre a capacidade e disponibilidade de um sistema em receber novas tarefas, ou mesmo da
[Gunther 2004]. De fato, o loadavg foi um dos conceitos de instrumentação implementados
necessidade de remanejar tarefas de um sistema para outro. Atualmente, uma das aplicações
no Multics [Saltzer e Gintell 1970], sistema operacional predecessor da família de sistemas
práticas dos índices de carga é o balanceamento de carga em sistemas distribuídos. A literatura
operacionais Unix. Sistemas Unix-like implementam essa métrica e a disponibilizam por meio
cita suas aplicações no escalonamento de tarefas em clusters de computadores [Sit et al. 2004]
de programas utilitários (ex. uptime) e, no caso do Linux, também via procfs (/proc/loadavg).
e Grids Computacionais [Payli et al. 2004].
O loadavg é composto por três valores que caracterizam a carga do sistema em intervalos de
De forma geral, o conceito de carga (load) diz respeito ao uso dos recursos de processa-
1, 5 e 15 minutos. Esses valores iniciam em zero, variando de acordo com a carga do sistema.
mento de um sistema. Na literatura, existem diversos trabalhos que investigam diferentes abor-
Considerando a carga do último minuto, loadavg_1, um valor de 0.5 indica que o sistema tem
dagens para quantificar a carga de um sistema. Dentre eles, destaca-se o trabalho de Ferrari e
uma carga que, em média, ocupa 50% da sua capacidade de processamento. Por conseguin-
Zhou (1987) que realiza uma comparação entre diversas abordagens para cálculo do índice de
te, um valor de 1.5 indica uma carga adicional de 50% além da capacidade de processamento
carga em sistemas Unix. São comparados índices baseados apenas na utilização de CPU com
do sistema.
índices baseados no tamanho de filas de tarefas aguardando por CPU, I/O de disco, e recursos
No Linux, o loadavg é implementado como um vetor de três elementos do tipo unsigned
de memória. Os autores concluem que índices baseados no tamanho de filas são melhores do
long. Cada posição do vetor armazena um número, em notação de ponto fixo, representando um
que apenas na utilização de recursos. Índices baseados apenas no uso de recursos não conse-
valor real, e correspondendo a um dos três intervalos descritos anteriormente. Como exemplo, a
guem quantificar o tamanho da contenção que ocorre em casos de alta carga de trabalho, onde
função que calcula o loadavg_1 segue o modelo apresentado na Equação 1 [Gunther 2004].
128 load(t) = load(t –1)e-5/60 + n(1-e-5/60), (1) utilizam cargas em nível de usuário: T2 (1 processo), T3(5), T4(10), T5(15). Já T6 até T9 adotam 129
cargas em nível de kernel: T6(1 work), T7(5), T8(10), T9(15). Os demais tratamentos implemen-
XI Worshop sobre Software Livre
mais usado são as work queues (46,31%), seguido de timers(37,66%) e tasklets(16,03%), como
XI Worshop sobre Software Livre
Referências
Bovet, D. P., Cesati, M. (2005) Understanding the Linux Kernel, 3rd ed., O’Reilly Media.
Broberg , J., Tari, Z., Zeephongsekul, P. (2006) “Task assignment with work-conserving migra-
tion”, Parallel Computing archive, vol. 32, ed. 11-12, pp. 808-830.
Chen, X., Quan, Q., Jia, Y., Cai, K. (2006) “A Threshold Autoregressive Model for Software Aging”,
IEEE Int’l Symp. on Service-Oriented System Engineering, China.
Figura 2. Carga incremental em nível de kernel (kernel level)
Ferrari, D., Zhou, S. (1986) “A load index for dynamic load balancing”, Proc. of 1986 ACM Fall
joint computer conference, Dallas/TX, USA.
Ferrari, D., Zhou, S. (1987) “An empirical investigation of load indices for load balancing ap-
plications”, In Proc. of Int’l Symp. on Computer Performance Modeling, Measurement and
Evaluation, The Netherlands.
Gunther, N. J. (2004) “Linux Load Average Revealed”, CMG 2004, Las Vegas, USA.
Love, R. (2003) Linux Kernel Development, 2nd ed., Sams.
Montgomery, D.C. (2005) Design and Analysis of Experiments, 6 ed., J. Wiley & Sons.
Payli, R. U., Yilmaz, E., Ecer, A., Akay, H. U., Chien, S. (2004) “DLB-A Dynamic Load Balancing
Tool for Grid Computing”, Proc. of Parallel CFD Conf., Can. Island.
Raj, A., “CPU hotplug Support in Linux Kernel”. Disponível em: www.kernel.org/doc/Documenta-
tion/cpu-hotplug.txt. Acessado em 24/10/2010.
Saltzer, J. H., Gintell, J. W. (1970) “The Instrumentation of Multics”, Communications of the ACM,
Figura 3. Distribuição dos mecanismos de execução em nível de kernel vol. 13, nr. 8, USA.
Sit, H. Y. et al. (2004) “An Adaptive Clustering Approach to Dynamic Load Balancing”, Int’l Symp.
on Parallel Architectures, Algorithms and Networks, China.
No total de 1571 chamadas, apenas 4 são relativas a softirqs, e nenhuma localizada nos Wilcox, M. (2003) “I’ll Do It Later: Softirqs, Tasklets, Bottom Halves, Task Queues, Work Queues
três subsistemas citados anteriormente. Esse resultado confirma a tendência em se usar work and Timers”, Proc. of Linux Conference Australia, Perth.
queues para agendamento de tarefas bottom halves. Apesar disso, salienta-se que tasklets são Zhou, S. (1988) “A Trace-Driven Simulation Study of Dynamic Load Balancing”, IEEE Transac-
construídas sobre a infra-estrutura de softirqs. tions on Software Engineering, pp. 1327-1341.
132 a mouses e teclados é diretamente repassada ao servidor de janelas Xorg, que as transmite 133
às aplicações. Disso decorrem dois problemas fundamentais para uma solução multiterminal:
XI Worshop sobre Software Livre
A maioria dos drivers de vídeo utilizados hoje em sistemas Linux faz parte do Xorg, e não do Outra solução é a associação por request/reply. Neste tipo de associação, é exibido
XI Worshop sobre Software Livre
Manager para que os usuários façam login no sistema. Ele também não restringe de que forma nomeação dos mesmos. Dentre os trabalhos futuros está a substituição do HAL pelo udev como
XI Worshop sobre Software Livre