Páginas

Mostrando postagens com marcador Computação. Mostrar todas as postagens
Mostrando postagens com marcador Computação. Mostrar todas as postagens

sábado, 26 de março de 2011

SCRUM + Customização de Processos

Segunda-feira (21/03/2011) tive o prazer de proferir uma espécie de palestra para a turma de Engenharia de Software do mestrado em Ciência da Computação da UFV a convite do professor José Luis Braga. Nessa palestra abordei métodos ágeis e customização de processo de software utilizando especificamente SCRUM + RUP + Parte do MPS.br nível G.

Mesmo para quem não assistiu a apresentação, vale muito a pena dar uma olhada no material disponibilizado abaixo com calma pois ele é bem auto-explicativo e abrange principalmente o SCRUM de maneira ampla. Em caso de dúvidas, sugestões, críticas...etc, comentem por ai pessoal.

domingo, 20 de fevereiro de 2011

Discussão: Pesquisa no Brasil

O horário de verão acaba de terminar e em conseqüência disso meu dia foi acrescido em uma hora, sendo assim resolvi aproveitar um pouco desse tempo realizando a postagem de hoje.

Na primeira discussão postada aqui no blog fiz uma breve explicação falando que minha intenção era a de postar uma seqüência com 12 discussões, sendo 6 sobre Técnicas de Pesquisa em Ciência da Computação e 6 sobre tópicos em Engenharia de Software. Pois bem, hoje estou fazendo a sexta e última postagem (pelo menos por enquanto) sobre Técnicas de Pesquisa, abordando especificamente o tema: Pesquisa no Brasil. 

Continuem acompanhando o blog pois brevemente darei início às discussões sobre Engenharia de Software, que acredito irão proporcionar trocas de idéias interessantes por aqui também.

Universidade Federal de Viçosa
Departamento de Informática
Mestrado em Ciência da Computação
INF 600 - Técnicas de Pesquisa em Ciência da Computação
Resumo nº. 06

Os artigos estudados referem-se questões que envolvem a pesquisa no Brasil, questões relativas à transferência de conhecimento, propriedade intelectual e fontes de financiamento de projetos de pesquisa.

Diferentemente de outros países, as pesquisas realizadas no Brasil possuem um baixo índice de depósitos de patentes. Nos países desenvolvidos é muito comum que pesquisas realizadas na academia gerem patentes e posteriormente tenham esses resultados compartilhados com a indústria gerando assim novos produtos. Para usufruir desse conhecimento, geralmente são firmados contratos de exploração de conhecimento, onde a indústria paga royalties à academia pelo fato de estar utilizando tecnologia gerada pela mesma.

Essa maneira de conduzir as pesquisas voltadas à patentes e o posterior compartilhamento com a indústria mediante a compensação financeira é muito benéfica para ambos os lados. A indústria lucra por estar usufruindo de conhecimentos e invenções inovadores que são agregadas aos seus produtos, produzindo um grande diferencial de mercado, enquanto que a academia passa a ter cada vez mais recursos financeiros que proporcionam a realização de pesquisas cada vez mais importantes e de impacto, gerando assim um grande ciclo virtuoso.

No Brasil vários fatores influenciam para que pesquisadores gerem poucas patentes, principalmente fatores culturais, burocráticos e financeiros. No nosso país é comum que na academia a mistura de papeis com a indústria seja vista com certo preconceito. Algumas vertentes mais tradicionalistas de pesquisadores acreditam que a transferência de conhecimento da academia para a indústria não seja algo benéfico para a academia. Com relação a burocracia, enquanto pedidos de patentes em outros países demoram cerca de 2 anos para serem atendidos, no Brasil esse período pode ultrapassar os 10 anos. Financeiramente falando, nem todo pesquisador tem fundos suficientes para submeter um pedido de patente, pois o custo inicial desse processo é caro, custando em torno de U$7.000,00.

Uma forma de driblar limitações financeiras é a busca por agentes financiadores de pesquisa, como por exemplo, o FINEP, FAPESP, FAPEMIG, CAPES, entre outros.

De maneira geral, para obter-se sucesso na capitação de recursos para pesquisas, deve-se inicialmente estabelecer o que se pretende pesquisar, de que maneira, levantar a importância de realizar pesquisas com o tema proposto, estabelecer um cronograma, estimar custos e antecipar possíveis resultados obtidos pela equipe de pesquisadores também previamente definida. A partir dessas definições, uma busca criteriosa deve ser realizada com intuito de encontrar agentes financiadores que tenham um perfil adequado para a proposta de pesquisa.

Para encontrar os agentes ideais, é importante que seja analisado se esses agentes já financiaram pesquisas semelhantes à proposta e se atualmente continua sendo de seu interesse financiar algo com o perfil proposto. Quanto mais tempo os pesquisadores se dedicarem a encontrar agentes financiadores com perfis específicos, maiores serão suas chances de captarem recursos para suas pesquisas.

Após levantamento prévio de possíveis agentes financiadores, é essencial que a elaboração do projeto que será proposto esteja estritamente dentro das normas e padrões exigidos por cada um, buscando sempre despertar interesse pela proposta, sendo claro, objetivo e ao mesmo tempo detalhista. Outro fator importantíssimo é a demonstração de seriedade, montando equipes de pesquisadores com credibilidade e atendendo os prazos estabelecidos.

Outro tema abordado nas leituras foi com relação ao direito autoral no Brasil, mais especificamente de software. Semelhante aos direitos autorais concedidos a autores de obras literárias que valem por 70 anos após sua morte, direitos autorais de software valem por 50 anos no Brasil. Muitos autores acreditam ser absurdo que o direito de software dure tantos anos, pois na prática essa duração é como se fosse infinita, haja vista que a tecnologia avança de maneira muito acelerada e um software produzido a 50 anos atrás não agrega nenhum valor ao conhecimento da sociedade quando torna-se de domínio público. Isso é um fator prejudicial à inovação tecnológica e ao progresso científico do nosso país.

Referências

[1] CÂMARA, G. (2006). Grandes desafios da Computação: A construção de uma “terceira cultura”. Disponível em: http://www.dpi.inpe.br/gilberto/present/grandes_desafios_gilberto.ppt . Acessado em 28 nov. 2010.

[2] Handbook for Preparing and Writing Research Proposals. C.P. Patrick Reid. Vienna, Austria, IUFRO Special Programme for Developing Countries, 2000. - 164 p.

[3] LUCENA, Carlos José Pereira et al. Grandes Desafios da Pesquisa em Computação no Brasil - 2006-2016. Disponível em: http://goo.gl/fGCyq . Acessado em 28 nov. 2010.

[4] SOCIEDADE BRASILEIRA DE COMPUTAÇÃO. Computação Brasil, Porto Alegre, v. 20, p. 3-11, Jan./Fev.2006.

[5] SAKIYAMA, C. C. H. Captação de Recursos para Pesquisa: Elaboração de Projetos. Seminário Pós-Graduação Informática – UFV – 10 de Julho de 2007.

quinta-feira, 20 de janeiro de 2011

Discussão: Critérios de Avaliação do Meio Acadêmico

Após praticamente um mês sem publicar novas discussões aqui no blog, resolvi hoje dar continuidade a essa série de discussões de temas ligados ao meio acadêmico. Na postagem de hoje estarei abordando mais um tema polêmico que dividi opiniões: Critérios de Avaliação do Meio Acadêmico.

Convido aos leitores a comentarem a vontade e inclusive aproveitarem o novo espaço "Social Network" para postarem além de suas opiniões, materiais que por ventura julguem complementar ao tema tratado na discussão.

Universidade Federal de Viçosa
Departamento de Informática
Mestrado em Ciência da Computação
INF 600 - Técnicas de Pesquisa em Ciência da Computação
Resumo nº. 05

Os artigos estudados referem-se ao meio acadêmico e diversas situações oriundas do mesmo, mais especificamente a respeito de critérios de avaliação.

Tópicos como avaliação em Journals e Conferências, qualidade dos avaliadores, práticas de avaliação, critérios de mérito acadêmico e fator de impacto foram abordados e de uma maneira geral os autores foram bem críticos em relação a todos esses pontos, enunciando diversas falhas, atitudes antiéticas e outras situações que questionam de maneira pesada o modelo acadêmico vigente.

Segundo o autor do artigo [1], devido ao fato dos avaliadores de Journals e Conferências realizarem suas atividades de forma voluntária, todo processo acaba acontecendo de uma forma muito amadora, sem motivação e com critérios questionáveis. É comum que trabalhos sejam rejeitados em um local e sejam aceitos em outros sem que os autores façam qualquer alteração nos mesmos, demonstrando assim não haver um padrão de correção. Pior que isso foi a comprovação feita pelos autores de que os avaliadores as vezes não lêem os artigos que estão avaliando, e isso ficou provado quando foi realizada uma experiência selecionando alguns artigos já publicados, alterando apenas o título e os autores e submetendo-os para avaliação. Alguns desses trabalhos foram aceitos para publicação e nos que foram rejeitados, em nenhuma das avaliações foi constatado a ocorrência de plágio, ou seja, ou avaliadores leram os trabalhos de forma muito superficial e pouco pesquisaram a respeito para avaliar, ou talvez nem devam ter se dado ao trabalho de ler.

Em outra experiência realizada em [1], o autor submeteu para avaliação da Conferência Visualization and Intelligent Design in Engineering and Architecture-VIDEA’95, textos que não faziam o mínimo sentido, como por exemplo, a chamada de trabalhos da Conferência entre outros. O resultado final dessa experiência foi o aceite de todos os textos submetidos pelo autor. De forma indutiva ele chegou a conclusão de que na verdade não havia avaliação de trabalhos nessa conferência, mas sim um negócio de fachada onde qualquer texto que fosse submetido e pagasse a taxa de $600 seria publicado. O detalhe é que os trabalhos dessa conferência foram publicados pela Editora Elsevier, responsável por publicar livros de alta qualidade.

Algo que foi muito criticado pela maioria dos artigos estudados foi a avaliação de produtividade de pesquisadores ser feita pela quantidade de trabalhos publicados e não pela qualidade. Esse procedimento é prejudicial a qualidade dos trabalhos publicados, pois muitos pesquisadores acabam jogando com a regra, publicando trabalhos mal revisados, em andamento ou com resultados superficiais. Técnicas como auto-plágio acabam também sendo incentivadas para gerar um número maior de publicações e dessa forma obterem mais acesso a financiamentos e maior prestígio. Trabalhos realmente desafiadores e que trazem grandes avanços para a ciência acabam sendo deixados de lado por demandarem mais tempo e esforço para serem realizados e conseqüentemente demoram mais para gerar resultados numéricos (número de publicações!)... Isso tudo é muito prejudicial para o progresso científico.

Outra forma de se avaliar é com a utilização do fator de impacto. Essa avaliação é feita a partir da divisão do número de citações obtidas nos dois anos anteriores, pelo número de artigo publicados no mesmo período. Inicialmente esse critério parece um pouco mais justo que a simples contagem do número de publicações, pois se um trabalho é muito citado, provavelmente é porque o mesmo é de qualidade, certo? Nem sempre. Esse critério de avaliação também é falho em alguns aspectos. Autores podem acabar negociando troca de citações entre si para ambos serem beneficiados gerando números artificiais. Da mesma forma, autores que trabalham com temas novos ou pouco pesquisados, naturalmente serão pouco citados, sendo assim esses fatores de impacto serão baixos, mas nem por isso significa que os trabalhos realizados pelos mesmos foram de baixa qualidade.

Após a leitura dos artigos, ficou claro que o modelo acadêmico atual, embora seja responsável pela formação de pessoas brilhantes e com méritos reais para alcançarem status em suas carreiras, também oferece muitas brechas para que pessoas antiéticas e de qualidades questionáveis consigam alcançar postos altos, status e pior que isso, acabar tomando espaço de outros que talvez merecessem mais. Contatos influentes ajudam muito nesse sentido também. Claro que isso não é algo generalizado, porém de fato acontece e sou cético com relação a mudanças leves. Para solucionar esses problemas citados no resumo e alguns outros relatados nos artigos lidos, uma mudança geral do sistema se faz necessária, porém isso não é algo trivial e que acredito demorará ocorrer, se é que ocorrerá.

Referências

[1] Warren D. Smith. (2010). Journals, Conferences, and Referees, or why "modern" "professional" Science is organized in a completely screwed up Victorian amateur way. Disponível em: http://www.math.temple.edu/~wds/homepage/refereeing. Acessado em 7 nov. 2010.

[2] Ramesh V., Glass R.L., Vessey I. Research in computer science: An empirical study(2004) Journal of Systems and Software, 70 (1-2), pp. 165-176.

[3] AMIN, M.; MABE, M. Impact factors: use and abuse. Perspectives inpublising, Amsterdam, n. 1, p. 1-6, Oct. 2000

[4] Rossner, Mike; Van Epps, Heather; Hill, Emma. 2007. Show me the data. Journal of Cell Biology, Vol 179,No 6, December 17, pp. 1091-1092. http://dx.doi.org/10.1083/jcb.200711140 

[5] David Lorge Parnas. 2007. Stop the numbers game. Commun. ACM 50, 11 (November 2007), 19-21. DOI=10.1145/1297797.1297815 http://doi.acm.org/10.1145/1297797.1297815

[6] Bertrand Meyer, Christine Choppy, Jørgen Staunstrup, and Jan van Leeuwen. 2009. Viewpoint: Research evaluation for computer science. Commun. ACM 52, 4 (April 2009), 31-34. DOI=10.1145/1498765.1498780 http://doi.acm.org/10.1145/1498765.1498780

quinta-feira, 23 de dezembro de 2010

Discussão: Como escrever bons artigos científicos

Para dar uma quebrada no ritmo de postagens sobre discussões científicas e evitar que o conteúdo do blog ficasse massante, resolvi fazer a postagem da semana passada sobre o filme "The Social Network", entretanto optei retomar rapidamente às discussões dado o sucesso que elas estão tendo a nível de acesso e procura.

Para essa postagem iremos discutir um tema importante para TODAS as áreas: Como escrever e estruturar bem artigos científicos. 

Embora algumas pessoas da área de computação nem dêem a devida importância para desenvolver suas habilidades de escrita por julgarem não ser tão importante, após a leitura do resumo ficará claro que esse é um pensamento errado e que deve ser combatido.

obs: Essa será a última postagem que vou realizar antes do Natal, portanto desde já desejo um feliz natal repleto de muita fartura e alegrias a todos os leitores.

- Ilustração do post: Alexandre Araújo - Estúdio Chanceler



Universidade Federal de Viçosa
Departamento de Informática
Mestrado em Ciência da Computação
INF 600 - Técnicas de Pesquisa em Ciência da Computação
Resumo nº. 04

Os artigos estudados referem-se a maneiras de escrever melhores artigos em um âmbito geral e também especificamente no campo da ciência da computação.

Geralmente boa parte dos estudantes e profissionais da área de computação não têm muita afinidade com a escrita. Muito desse mau costume deve-se a falta de prática da escrita ou mesmo pelo desinteresse em escrever bons textos. Desde a graduação, muitos alunos de computação deixam de dar valor a qualidade dos textos que produzem por julgarem ser desnecessário ter tal habilidade bem desenvolvida para exercerem seus futuros cargos como profissionais de computação. Essa visão é completamente errada, pois é pura ilusão achar que o profissional de computação passará todo seu tempo sentado ao computador apenas programando. Profissionais de computação atuam em atividades que requerem habilidades de comunicação e conseqüentemente escrita, como levantamento e descrição de requisitos, elaboração de projetos, documentação clara de software, elaboração de manual do usuário, atas de reuniões e etc. Sendo assim, dependendo do cargo exercido pelo profissional de computação, pode ser que ele passe muito mais tempo executando atividades que envolvem a escrita do que programando por exemplo.

Nesse sentido, fica claro que além de habilidades computacionais, é muito importante também ter habilidades em escrita para um profissional de computação ser bem sucedido em sua carreira corporativa.

No artigo [3], os autores relataram um projeto voltado para quebrar essa barreira que alunos ainda não graduação costumam ter de que é desnecessário ter habilidades em escrita para ser um bom profissional em computação e a partir do uso de taxonomias de escrita e conselhos gerais, passaram preparar melhor os alunos no que diz respeito a escrita para ensino, comunicação acadêmica e profissional. Várias atividades de escrita foram destinadas aos alunos, sendo que estas utilizavam um modelo estrutural de redação pré-estabelecido que juntamente com o apoio do Centro de escrita da Universidade, permitiu que os alunos se concentrassem principalmente em aprendizagem e análise, em vez de organização e conteúdo.

Para alunos de mestrado e doutorado, escrever bem tem uma importância ainda maior. Dentre os vários critérios utilizados para avaliação de planos de pós-graduação no Brasil, 50% está envolvido diretamente com a produção científica do mesmo. Sendo assim, quanto mais publicações em revistas e conferências de alto nível um plano tiver, maiores serão suas chances de ser avaliado com notas altas e conseqüentemente ter acesso a uma quantidade de recursos financeiros maiores. Quanto mais recursos têm um plano de pós-graduação, mais ele pode investir no seu pessoal e equipamentos, que logo tendem a resultar em pesquisas melhores.

Somente bons artigos submetidos a veículos de alto nível conseguem ser publicados, e para melhorar a qualidade dos artigos escritos, várias dicas foram apresentadas nas leituras realizadas. De maneira geral, os artigos escritos devem ser claros e objetivos, possuírem uma boa revisão bibliográfica de trabalhos relacionados, apresentarem o problema que propõem solucionar, a relevância de tal problema e de forma bem fundamentada apresentar suas reais contribuições para solucionar o problema proposto, assim como o que difere tal contribuição das já realizadas em trabalhos anteriores.

Um método interessante para escrever artigos foi apresentado em [1]. Chamado de método de escrita por Scripts, esse método basicamente divide o processo de criação de um artigo em quatro etapas, sendo que após a realização de cada uma delas, o texto fica cada vez mais detalhado e refinado, estando praticamente pronto após a realização da ultima etapa. Na primeira etapa desse método é criado o chamado Outline, que é basicamente a estrutura do artigo proposto, ficando definidas assim as seções e subseções que compõe o mesmo. Na segunda etapa é feito o chamado Script 1, onde em cada seção e subseção definida no Outline, são enumerados pontos chaves que serão detalhados na terceira etapa do método. Esses pontos são frases curtas e claras. Na terceira etapa é feito o Script 2, que nada mais é do que o detalhamento dos pontos estabelecidos da etapa anterior, colocando uma marcação entre chaves ao final de cada um deles. A quarta e última etapa basicamente é composta pela retirada das marcações feitas no Script 2 e nas adaptações para dar sentido ao texto final.

Todas essas questões que relatei até o momento são voltadas para aspectos técnicos de um artigo de qualidade, porém alguns aspectos não-técnicos também necessitam de atenção para evitar que bons artigos sejam rejeitados após submissão. Alguns aspectos não-técnicos que valem ressaltar são:

  • Verificar se o artigo obedece à formatação exigida pela revista/conferência no qual será submetido;
  • Verificar se a revista/conferência para a qual o artigo será submetido é apropriada;
  • Usar sempre vocabulário formal;
  • Certificar-se de que todas as figuras e tabelas do artigo estão legíveis;
  • Cuidar para que o texto esteja claro;

Cada avaliador pode utilizar de critérios pessoais para avaliar um artigo submetido, porém de formas gerais, os aspectos técnicos e não técnicos que citei são sempre levados em consideração. Depois de realizada as avaliações, sempre os avaliadores fazem considerações que são muito valiosas para uma melhor adequação do artigo proposto, portanto essas considerações merecem muita atenção por parte dos autores.

Após a leitura dos artigos ficou claro que escrever bem é tão importante para o profissional de computação quanto pra profissionais de outras áreas. Independente da escolha pelo meio acadêmico ou corporativo, sempre os profissionais de computação serão exigidos com relação a suas habilidades de escrita e a falta de tais habilidades poderá influenciar negativamente em suas carreiras.

Referências

[1] BRAGANHOLO, V., HEUSER, C., REIS, A. (2004) “Redigindo artigos de Ciência da Computação: uma visão geral para alunos de mestrado e doutorado”, In: WTDBD - Workshop de Teses e Dissertações em Banco de Dados, Brasília, Brasil

[2] Mary Shaw, "Writing Good Software Engineering Research Papers," Software Engineering, International Conference on, p. 726, 25th International Conference on Software Engineering (ICSE'03), 2003

[3] Dugan, R. F. and Polanski, V. G. 2006. Writing for computer science: a taxonomy of writing tasks and general advice. J. Comput. Small Coll. 21, 6 (Jun. 2006), 191-203.

[4] R. Levin and D. D. Redell. An evaluation of the ninth sosp submissions or how (and how not) to write a good systems paper. Operating Systems Review, 17(3):35--40, July 1983.

terça-feira, 30 de novembro de 2010

Discussão: Plágio em publicações científicas

Dando continuidade às nossas discussões científicas, hoje a postagem trata de um tema realmente polêmico e controverso: Plágio.

Embora não seja um tema novo, o resumo trata de alguns pontos específicos da ocorrência do mesmo que acabam sendo interessantes para formação de senso crítico a respeito.

Façam bom proveito da leitura e fiquem a vontade para comentar!

Universidade Federal de Viçosa
Departamento de Informática
Mestrado em Ciência da Computação
INF 600 - Técnicas de Pesquisa em Ciência da Computação
Resumo nº. 03

Os artigos estudados referem-se à ocorrência de plágio. Embora essa prática possa ocorrer em qualquer espécie de obra que envolva direitos autorais, os artigos referem-se mais especificamente a ocorrência dessa prática em publicações científicas.

De maneira geral, plágio significa tomar posse de uma criação da qual os direitos autorais pertencem à outra pessoa e passar-se como criador da mesma. O plágio em publicações científicas pode se manifestar de várias formas, como a cópia integral ou parcial de uma obra e cópia de elementos de uma obra sem citar os devidos autores originais. Alguns autores também cometem plágio mesmo citando as fontes originais, pois acabam não deixando claro o que é de sua autoria e o que está sendo referenciado, podendo acabar assim se passando como autor de algo que ele não fez de fato.

O ato de plagiar uma obra fere conceitos legais e éticos do meio científico, porém a partir da leitura dos artigos, é possível perceber que a prática do auto-plágio no meio acadêmico é um tanto quanto comum. O auto-plágio nada mais é do que aproveitar trabalhos anteriores integralmente ou parcialmente, e republicá-los sem fazer citação, fazendo assim os mesmos se passarem por trabalhos inéditos. Muitos problemas podem ser gerados a partir dessa prática, como por exemplo, visões distorcidas da sociedade em relação à forma como o capital investido em pesquisa é aplicado e desconforto no meio acadêmico por profissionais que não republicam seus trabalhos serem menos valorizados que outros que teoricamente produzem mais, porém estão repetindo publicações.

As vezes é um pouco confuso pensar que um pesquisador não tem o direito de reaproveitar seus próprios trabalhos para de repente enriquecerem o contexto de trabalhos futuros, porém, muitas revistas tornam-se detentoras dos direitos autorais de um trabalho quando o mesmo é publicado por ela. Nesse sentido, o reaproveitamento descontrolado de um trabalho, mesmo que tenha sido feito pelo próprio autor, acaba gerando um problema legal, pois o mesmo não é mais dono dos seus direitos.

O reaproveitamento de trabalhos anteriores em publicações futuras é permitido e pode inclusive ser uma prática saudável para contextualizar os novos trabalhos, porém qual é o limite de reaproveitamento? Não existe uma norma geral para isso. Nos próprios artigos estudados vimos medidas diferentes para o nível permitido de reaproveitamento, segundo [2], pelo menos 25% da publicação deve ser inédita para não configurar plágio. Já segundo [3], usualmente é utilizada a “regra dos 30%”, onde é permitido um reuso de até 30% de uma publicação anterior.

É muito complicado estabelecer e mensurar tais valores, afinal de contas isso tudo acaba sendo um fator muito pessoal, sendo que determinados avaliadores podem achar que um trabalho está plagiando outro, enquanto outros avaliadores mais maleáveis enxergam por outra ótica.

Outro fator que acaba facilitando a ocorrência de plágio é a falta de punições severas. Dentre as possíveis punições que vimos nos artigos, a maioria são punições brandas, como por exemplo, cartas de retratação admitindo o erro cometido.

Não há problema em reutilizar trechos de trabalhos anteriores que sejam relevantes a trabalhos futuros, porém o que fica ruim são os abusos cometidos por alguns autores para ganharem volume de publicação. É de certo ponto até desagradável ler artigos diferentes de um mesmo autor tendo a sensação de que aquilo já foi lido anteriormente. Dentre os artigos estudados no Resumo 2, podemos exemplificar essa sensação com algumas publicações do Victor Basili. Em todos os seus artigos estudados, curiosamente o autor que ele mais cita é ele próprio e muitas das coisas que ele escreveu nesses artigos são claramente idênticas a de outros artigos de sua autoria, como é o caso dos artigos [5] e [6], onde trechos consideráveis dos mesmos são idênticos, sem ao menos mudar uma palavra e não existe citação de [6] para [5].

Quando a reutilização é considerada legal e ética, a mesma não traz problemas a ninguém, porém quando ela é considerada ilegal e/ou antiética, passa a ser tratada como plágio. Mesmo no meio acadêmico, as opiniões a respeito do que é ético e o que não é variam muito, como ficou claro em [2], portanto fica muito complicado fazer esse tipo de classificação. Essa falta de padronização de critérios e punições acaba dando abertura para a ocorrência de plágios e ao menos que seja dada uma maior atenção a esses pontos, essa prática continuará acontecendo tanto no meio acadêmico, quanto no meio de desenvolvimento de software e demais meios.

Referências

[1] ACM policy and procedures on plagiarism, October 2005.

[2] Collberg, C. and Kobourov, S. 2005. Self-plagiarism in computer science. Commun. ACM 48, 4 (Apr. 2005), 88-94. DOI= http://doi.acm.org/10.1145/1053291.1053293

[3] Samuelson, P. 1994. Self-plagiarism or fair use. Commun. ACM 37, 8 (Aug. 1994), 21-25. DOI= http://doi.acm.org/10.1145/179606.179731

[4] Siponen, M. T. and Vartiainen, T. 2007. Unauthorized copying of software: an empirical study of reasons for and against. SIGCAS Comput. Soc. 37, 1 (Jun. 2007), 30-43. DOI= http://doi.acm.org/10.1145/1273353.1273357

[5] Basili, V. R. “The Experimental Paradigm in Software Engineering”. In H. D. Rombach, V. Basili, R. Selby, editors, Experimental Software Engineering Issues: Critical Assessment and Future Directions, Lecture Notes in Computer Science #706, Springer-Verlag, August 1993

[6] Basili, V. R. The Role of Experimentation in Software Engineering: Past, Current, and Future, Proceedings of the 18th International Conference on Software Engineering, Berlin, Germany, March 25-29, pp. 442-449, 1996.

quinta-feira, 18 de novembro de 2010

Discussão: Experimentação em Ciência da Computação é possível?

Olá pessoal. Já faz mais ou menos um mês que fiz uma postagem a respeito da discussão Computação e a Ciência. Achei muito legal a forma como a discussão foi muito bem aceita por vocês leitores. Nessa postagem eu tinha explicado a origem daquele texto e dito que haveriam mais 11 postagens com discussões a respeito de engenharia de software e técnicas de pesquisa em computação, sendo que eu tentaria manter uma periodicidade se possível semanal. Infelizmente devido aos meus compromissos com o mestrado, não pude dar seqüência a essas postagens com a periodicidade desejada, entretanto hoje estou dando continuidade a essa idéia postando a discussão Experimentação em Ciência da Computação é possível?

Espero que façam bom proveito da leitura e também comentem como na discussão anterior, lembrando que para os mais interessados em se aprofundar no assunto, vale a pena pelo menos passar o olho pelas referências bibliográficas.

Universidade Federal de Viçosa
Departamento de Informática
Mestrado em Ciência da Computação
INF 600 - Técnicas de Pesquisa em Ciência da Computação
Resumo nº. 02


Os artigos estudados referem-se à experimentação no âmbito da Ciência da Computação, porém o paradigma experimental é utilizado é vários campos do conhecimento para gerar modelos a partir de estudos empíricos.

Estudos empíricos são realizados por observação de um dado campo, coletando e analisando dados para entender melhor um problema específico, gerando hipóteses para solucionar o problema e validando as mesmas a partir de experimentos para então gerar modelos que podem ser reproduzidos e aperfeiçoados futuramente. É seguindo esse ciclo que o conhecimento avança.

Aplicar experimentação no processo de desenvolvimento de software sem dúvida não é algo trivial. Nesse processo existe uma grande quantidade de variáveis envolvidas. Algumas delas são as técnicas de programação, metodologias e métodos, paradigmas e linguagens de programação utilizadas, características do ambiente de trabalho e principalmente o fator humano (programadores, analistas, testadores... etc.). Considerando tantas variáveis, torna-se muito complicado a geração de um modelo genérico que atenda qualquer processo de software.

Para realização de pesquisas experimentais em engenharia de software, é de fundamental importância que ela aconteça analisando problemas reais e não realizando meras simulações. Para isso, é essencial que as pesquisas aconteçam em laboratórios de P&D (Pesquisa e Desenvolvimento) da própria indústria. Os autores dos artigos estudados dizem que a relação entre a academia e a indústria em pesquisas experimentais de engenharia de software é simbiótica, ou seja, a indústria necessita de melhorias no seu processo de desenvolvimento de software para minimizar erros e maximizar tempo de produção e qualidade do produto, enquanto que pesquisadores necessitam de dados reais que possam ser analisados e um ambiente propício para fazer seus experimentos, validar suas hipóteses e gerar assim os modelos de conhecimento utilizados pela indústria.

Embora um dependa do outro, não é fácil conseguir espaço para pesquisar na indústria. Inicialmente a tendência é o profissional de desenvolvimento de software achar que a presença do pesquisador no seu ambiente de trabalho será prejudicial, sendo assim, ele tende a não colaborar devidamente com a pesquisa. De fato, por envolver questões culturais e por influência dos experimentos, algumas mudanças na forma de trabalhar podem ocorrer, e devido à curva de aprendizagem, essas mudanças inicialmente tendem a causar prejuízos no processo de desenvolvimento, porém traz benefícios futuros.

Objetos de pesquisa não são problema para Victor Basili, haja vista que todos seus experimentos citados nos artigos estudados foram realizados no NASA Goddard Software Engineering Laboratory (SEL), que é um laboratório de pesquisa no qual ele comanda.

No SEL é utilizado o conceito de “Fábrica de Experiência” para gerar modelos a partir de pesquisas em engenharia de software experimental. Para tal, dados são coletados e interpretados com a abordagem Goal Question Metric (GQM) e a partir da aplicação do paradigma da melhoria da qualidade (QIP), modelos empacotados anteriormente são reutilizados e evoluídos para construir novos sistemas.

Com essa forma de unir pesquisa e desenvolvimento, o SEL conseguiu aumentar bastante o nível de reutilização de código, diminuir consideravelmente os custos de desenvolvimento e aumentar em muito as funcionalidades dos softwares lá desenvolvidos.

Embora os resultados apresentados no SEL sejam muito animadores, eles são fruto de muitos anos de estudo e experimentação. Além disso, todos esses experimentos foram realizados em projetos do próprio laboratório, portanto não é possível afirmar com base nas informações contidas nos artigos estudados que esses modelos gerados pelo SEL seriam eficientes quando aplicados em outro local que envolva profissionais diferentes, com conhecimentos e culturas diversas, trabalhando em um ambiente completamente diferente.

Nos artigos estudados de sua autoria, Victor Basili reconhece que para gerar modelos básicos e métricas de negócio e científicas, é necessário que existam laboratórios de níveis diferentes realizando experimentos em engenharia de software.

Após a leitura dos artigos, ficou claro que pesquisas experimentais em ciência da computação, mais especificamente em engenharia de software, não são muito comuns por envolverem vários fatores limitantes. Geralmente o que vemos são pesquisas voltadas para ambientes específicos, porém também é possível alcançar resultados generalistas, como ficou provado em pelo autor em [5] ao descrever a pesquisa experimental que resultou em um modelo genérico que auxilia na prevenção e correção de erros no desenvolvimento de software de forma eficiente.

Referências

[1] Basili, V. R. “The Experimental Paradigm in Software Engineering”. In H. D. Rombach, V. Basili, R. Selby, editors, Experimental Software Engineering Issues: Critical Assessment and Future Directions, Lecture Notes in Computer Science #706, Springer-Verlag, August 1993.

[2] Basili, V. R. and Zelkowitz, M. V. 2007. Empirical studies to build a science of computer science. Commun. ACM 50, 11 (Nov. 2007), 33-37. DOI= http://doi.acm.org/10.1145/1297797.1297819

[3] Basili, V. R. The Role of Experimentation in Software Engineering: Past, Current, and Future, Proceedings of the 18th International Conference on Software Engineering, Berlin, Germany, March 25-29, pp. 442-449, 1996.

[4] Dror G. Feitelson. Experimental Computer Science: The Need for a Cultural Change. Disponível em: < http://www.cs.huji.ac.il/∼feit/papers/exp05.pdf > Acesso em 05 set. 2010.

[5] Weyuker, E. J. 2007. Software engineering research: from cradle to grave. In Proceedings of the the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (Dubrovnik, Croatia, September 03 - 07, 2007). ESEC-FSE '07. ACM, New York, NY, 305-311. DOI= http://doi.acm.org/10.1145/1287624.1287667

[6] Marcos, E. 2005. Software engineering research versus software development. SIGSOFT Softw. Eng. Notes 30, 4 (Jul. 2005), 1-7. DOI= http://doi.acm.org/10.1145/1082983.1083005

segunda-feira, 11 de outubro de 2010

Discussão: Computação e a Ciência

Já faz alguns dias que tive uma idéia de uma sequência de postagens para o blog mas não vinha tendo tempo de colocá-la em prática, porém hoje irei dar início a essa sequência. Inicialmente vou fazer uma breve explicação do que se tratam essas postagens e a origem das mesmas.  

Dentre as várias disciplinas que venho fazendo durante o mestrado, estou cursando nesse semestre a segunda ministrada pelo professor zéluisbraga . No semestre passado acompanhei a disciplina de Engenharia de Software e nesse semestre estou cursando Técnicas de pesquisa em Ciência da Computação com ele. Você já deve estar se perguntando: "Tá bom Lucas e o que eu tenho a ver com isso?..". Durante essas disciplinas ministradas pelo professor José Luis, realizamos periodicamente várias leituras interessantes sobre temas importantes e então fazemos resumos críticos a respeito desses temas. Embora seja relativamente trabalhoso realizar tais tarefas, o resultado que elas proporcionam no final são muito valorosos. Essas leituras acabam despertando um grande senso crítico sobre esses assuntos, e após debatermos os mesmos dentro de sala, acabamos de vez saindo dos "achômetros" e das opiniões superficiais sobre esses temas para posturas mais sólidas. 

Pois bem, após essa breve explicação da origem desses resumos, a idéia da sequência de postagens é a seguinte: De tempos em tempos, talvez semanalmente (não posso prometer!), irei postar um desses resumos aqui no blog, juntamente com as referências bibliográficas utilizadas nos mesmos. Dessa forma podemos utilizar os comentários para criar discussões interessantes a respeito dos temas abordados. Quem tiver interesse em se aprofundar nos assuntos, vale a pena dar pelo menos uma passada de olho nas referências bibliográficas.

No total, essas sequência de postagens será composta por 12 resumos, sendo 6 de temas relacionados a Engenharia de Software e outros 6 referentes a Técnicas de Pesquisa em Ciência da Computação. Vou dar inicio a essa sequência com os resumos de Técnicas de Pesquisa, sendo que o primeiro tema abordado é o mesmo do título dessa postagem: "Computação e a Ciência".

Espero que gostem da idéia e façam bom proveito dessas discussões!

Universidade Federal de Viçosa
Departamento de Informática
Mestrado em Ciência da Computação
INF 600 - Técnicas de Pesquisa em Ciência da Computação
Resumo nº. 01

Os artigos estudados analisam o que de fato é a Ciência da Computação e buscam dar definições mais concretas sobre os contextos em que ela está inserida, além de tentarem também responder se ela realmente é uma ciência.

Após a leitura de todos os artigos, ficou claro que a categorização de Ciência da Computação varia muito entre as pessoas. Isso se deve muito a formação que tiveram. Alguns relacionam a computação mais com a ciência, outros a identificam mais com a engenharia, outros acreditam que ela é uma ciência puramente matemática, enquanto outros defendem piamente a visão da computação como uma arte.

Na verdade a computação acaba sendo a interseção dessas visões. No primeiro artigo, Paul Graham, um dos inventores do Yahoo! , fez uma analogia muito interessante para definir a computação. Segundo ele, a ciência da computação é igual à Iugoslávia, um conjunto de áreas tenuamente relacionadas, jogadas juntos por um acidente da história. De fato faz muito sentido essa analogia, pois embora haja certa relação entre as áreas que compõe a Ciência da Computação, os estudos realizados por cada uma delas possuem focos bem diferentes, causando inclusive divergências entre pesquisadores de linhas de pesquisa diferentes ao analisarem assuntos em comum.

É muito errada a visão de que a Ciência da Computação só estuda problemas criados pelo homem e que por isso não seria uma ciência. Com o passar dos anos, a computação esta cada vez mais se estendendo a estudos ligados a outras áreas como a biologia e a física e com isso está inaugurando novas linhas de pesquisa como, por exemplo, a bioinformática. Ciência da computação na verdade é o estudo dos processos de informação, natural e artificial. Segundo Denning [4], quanto mais estudos em computação são feitos, menor fica a distância entre a computação e outros campos da ciência.

O intercâmbio da ciência da computação com outras áreas traz ganhos bilaterais, pois os estudos em computação são voltados para a aplicação de processos de informação para solucionar problemas ou sanar deficiências em outras áreas, através da aplicação dos fundamentos da computação. Para alcançar tais objetivos, pesquisas são realizadas e novos modelos computacionais acabam surgindo ou sendo aprimorados. Ao final, tanto os conhecimentos em computação, quanto os da área na qual ela foi aplicada, tendem a ter uma evolução. Um exemplo ideal para demonstrar como esse intercâmbio traz ganhos bilaterais é o Projeto Genoma [2]. Além dos grandes avanços que se tiveram em bioinformática, áreas como a biologia e a medicina também foram muito beneficiadas, pois sem o auxílio computacional, seria praticamente impossível mapear aproximadamente 80 mil genes que compõe o corpo humano e a partir dessas informações terem a possibilidade de entender melhor como funciona nosso corpo, fazendo assim diagnósticos mais precisos de algumas doenças, por exemplo.

Segundo estudo realizado por Walter Tichy [1] em artigos de Ciência da Computação publicados antes de 1995, aproximadamente 50% desses trabalhos propôs modelos ou hipóteses sem ao menos testá-los. Isso vai totalmente contra o que propõem o paradigma científico, onde toda hipótese deve ser testada para assim tornar possível a criação de modelos. Talvez essa forma errada que se fazia pesquisa em computação justifique tantas previsões erradas que aconteceram no passado da área.

A aplicação do paradigma científico na Ciência da Computação está sendo cada vez mais intensa e com isso a computação vem ganhando mais credibilidade. Atualmente sua aceitabilidade como uma ciência é muito superior à de décadas passadas.

De uma maneira geral, após a leitura de todos os artigos, ficou claro que a Ciência da Computação não só é uma área da ciência, como também é indispensável pra fazer ciência em outras áreas de conhecimento.

Referências

[1] Tichy, W. Should computer scientists experiment more. IEEE Computer (May 1998), 32–40.

[2] Projeto Genoma. Disponível em: Acesso em 21 ago. 2010.

[3] Denning, P. Is computer science science? Commun. ACM 48, 4 (Apr. 2005), 27–31.

[4] Denning, P. Computing is a natural science. Commun. ACM 50, 7 (July 2007), 15–18.

[5] Denning, P., and P. Freeman. 2009. Computing’s paradigm. Communications of the ACM 52: 28–30.

[6] Shagrir, O. 1999. "What is Computer Science About?" The Monist 82(1): 131-149.