Anda di halaman 1dari 16

Tcnicas de Leitura de Software: Uma Reviso Sistemtica

Smulo Nogueira Mafra, Guilherme Horta Travassos COPPE/UFRJ - Programa de Engenharia de Sistemas e Computao, Cx. Postal 68.511, CEP 21945-970, Rio de Janeiro - RJ - Brasil
{somulo,ght}@cos.ufrj.br

Abstract. The object-oriented paradigm (OO) has smoothly succeeded in the industrial development environments. However, the accomplishment of verification and validation activities concerned with OO system still remains a challenge. We believe that the use of reading techniques for software inspections can represent a feasible alternative into this context. In this paper the results from a systematic review regarding reading techniques applied to OO software have been described, including the discussion about research challenges concerned with such techniques. Resumo. A orientao a objetos (OO) alcanou considervel sucesso no desenvolvimento industrial. Entretanto, a conduo de atividades de verificao e validao em software OO ainda um desafio. Acreditamos que a utilizao de tcnicas de leitura em inspees de software seja uma alternativa vivel para garantir a qualidade do software OO. Em vista disso, o presente artigo descreve os resultados de uma reviso sistemtica conduzida com o objetivo de identificar, analisar e avaliar tcnicas de leitura aplicveis na garantia de qualidade no desenvolvimento de sistemas OO, cujos resultados apontam para novos desafios de pesquisa nesta rea.

1. Introduo
A busca por qualidade no desenvolvimento de sistemas tem sido uma tarefa rdua para a indstria de software. Em geral, gerentes so constantemente desafiados com o seguinte dilema: como desenvolver software de qualidade, a baixo custo, com restries de recursos e cronograma cada vez mais irreais, de forma a atender satisfatoriamente s necessidades do cliente? Para agravar a situao, o advento de novas tecnologias parece no estar contribuindo de forma satisfatria para a resoluo desse problema. O aclamado benefcio do paradigma orientado a objetos (OO), que supostamente diminui o custo de manuteno evolutiva, no foi observado em Hatton (1998). Alm disso, algumas caractersticas intrnsecas do paradigma OO como polimorfismo, encapsulamento, generalizao, entre outros, dificultam a predio do caminho de execuo do software, tornando a aplicao de testes de sistema um desafio para software OO [Lima e Travassos 2004]. Nesse sentido, a conduo sistemtica de inspees tem se mostrado uma alternativa vivel para contornar essa situao, ao permitir que a qualidade do software OO seja avaliada ainda em suas fases iniciais de desenvolvimento. Proposta inicialmente por Fagan (1976), a inspeo de software caracteriza-se por ser um tipo particular de reviso que pode ser aplicada a todos os artefatos de software, possuindo um processo de deteco de defeitos rigoroso e bem definido. A importncia da

conduo de inspees tem sido reforada por modelos de maturidade como o MR mps1 e o CMMI2, onde a sua utilizao recomendada explicitamente na rea de processo Verificao. Porm, embora o processo de inspeo de software tenha evoludo consideravelmente no mbito gerencial, at o incio dos anos 90s pouca nfase tinha sido dada para o trabalho individual do principal responsvel pela deteco de defeitos: o revisor de software [Shull 1998]. Em geral, as abordagens de inspeo propostas at ento utilizavam uma abordagem de leitura ad hoc, no fornecendo orientao sobre como o artefato deveria ser examinado em busca de defeitos; elas simplesmente assumiam que todos os revisores inspecionavam o artefato efetivamente [Knight 1993]. Uma provvel conseqncia dessa falta de orientao efetiva pde ser constatada na experincia vivenciada pela introduo de inspees no Laboratrio de Engenharia de Software do GSFC/NASA no final da dcada de 80 [Ciolkowski et al. 2002]. Naquele momento, foi observado que a conduo sistemtica de inspees de software no contribuiu de forma satisfatria para o aumento da taxa de deteco de defeitos. Diante desses resultados, pesquisadores comearam a se preocupar com a definio de tcnicas que apoiassem de maneira sistemtica as tarefas individuais de leitura de um artefato. Os resultados promissores obtidos com a introduo da tcnica cleanroom [Mills 1991] no contexto de inspees de cdigo-fonte motivaram a pesquisa por tcnicas de leitura que pudessem ser aplicadas a outros tipos de artefatos como documentos de requisitos e modelos de projeto. Desde ento, a pesquisa envolvendo tcnicas de leitura tem sido direcionada por resultados de estudos experimentais executados ao longo dos ltimos anos. medida que novos estudos so executados, as tcnicas so refinadas e novas hipteses geradas, proporcionando assim um maior corpo de conhecimento. Em razo disso, conduzimos uma reviso sistemtica [Biolchini et al. 2005] com o objetivo de identificar, analisar e avaliar as tcnicas de leitura propostas na literatura. Para cada tcnica identificada, descrevemos seus conceitos e resultados obtidos experimentalmente. Esperamos dessa forma contribuir para o aprimoramento das atividades de garantia da qualidade de software ao relatar o que supostamente funciona e o que no funciona na aplicao dessas tcnicas de leitura. O texto encontra-se dividido em sete sees incluindo esta que introduz o artigo. A seo 2 descreve os principais conceitos envolvendo tcnicas de leitura. A seo 3 relata a reviso sistemtica conduzida apresentando detalhadamente o protocolo utilizado. A seo 4 apresenta os resultados obtidos da reviso, descrevendo as tcnicas identificadas e os resultados obtidos experimentalmente. A seo 5 discute os resultados obtidos, a seo 6 apresenta o estado da arte sobre as tcnicas de leitura e finalmente a seo 7 conclui o artigo.

2. Tcnicas de Leitura para Artefatos de Software


As tcnicas de leitura surgiram como forma de melhorar o desempenho da inspeo de software, no que se refere atividade de deteco de defeitos. O termo leitura foi escolhido de forma a enfatizar as similaridades com o processo mental que as pessoas

1 2

Modelo de Referncia para melhoria de processo do software [Weber et al. 2004]. Capability Maturity Model Integration http://www.sei.cmu.edu/cmmi

utilizam quando tentam entender o significado de algum texto. Nas subsees seguintes apresentamos a definio de tcnicas de leitura alm de uma comparao entre tcnicas de leitura e checklists destacando as vantagens e desvantagens de cada abordagem. 2.1. Definio Uma tcnica de leitura pode ser caracterizada como uma srie de passos para a anlise individual de um artefato de software de forma a obter o entendimento necessrio para a execuo de uma determinada tarefa [Basili 1996]. Shull (1998) observou trs importantes critrios nessa definio: (i) uma srie de passos: a tcnica deve prover ao desenvolvedor orientao na conduo da leitura. Essa orientao pode variar desde um procedimento passo a passo a um conjunto de questes formuladas com o objetivo de manter o foco da leitura; (ii) anlise individual: tcnicas de leitura devem se preocupar com o processo de compreenso de um indivduo. Ainda que alguns mtodos de garantia da qualidade, nos quais a tcnica esteja inserida, devam requerer o trabalho em equipe (como numa reunio de inspeo), a compreenso de certos aspectos do artefato ainda assim uma tarefa individual; (iii) entendimento necessrio para a execuo de uma tarefa: a tcnica deve apoiar a obteno de um certo nvel de entendimento de alguns (todos) aspectos de um artefato. Basili et al. (1997) apontam que as tcnicas de leitura necessitam serem dependentes de contexto, bem definidas e orientadas a objetivos. Baseados nisso, estabeleceram os requisitos para uma tcnica de leitura: (i) estar associada a um tipo de artefato (ex.: documento de requisitos) e a notao pela qual o artefato descrito (ex.: lngua portuguesa); (ii) ser adaptvel de acordo com as caractersticas intrnsecas da organizao e do desenvolvimento; (iii) ser detalhada, provendo ao desenvolvedor um processo bem definido. A existncia de um processo bem definido permitiria que a tcnica fosse executada em outros projetos, atuando como um meio de disseminao de conhecimento; (iv) ser avaliada experimentalmente para determinar sua viabilidade e seu grau de efetividade na deteco de defeitos. 2.2. Tcnicas de Leitura vs Checklists A comparao utilizando checklist deveu-se a um estudo [Laitenberger 1998] ter constatado que checklist a tcnica mais empregada para a deteco de defeitos no contexto de inspees de software, entre as organizaes que empregam algum apoio leitura. A abordagem de checklist tenta aumentar a efetividade da inspeo e diminuir a relao de custo por defeito ao focar a ateno do revisor num conjunto pr-definido de questes. Os revisores respondem a essas questes, atribuindo respostas no formato de sim/no, enquanto lem um artefato de software. A seguir, comparamos a abordagens de checklist e tcnicas de leitura, no que se refere ao apoio deteco de defeitos. Orientao de leitura - Na abordagem de checklist, freqentemente faltam instrues concretas sobre como utilizar o checklist. Isto , geralmente o revisor no dispe de orientao sobre quando, e baseado em quais informaes, ele deve responder a uma determinada questo. O uso de tcnicas de leitura, por sua vez, apresenta um procedimento bem definido que orienta o revisor a localizar qual informao relevante ao propsito da reviso. Uma vez localizada a informao, o revisor orientado a como proceder para detectar defeitos.

Escopo de leitura - A abordagem de checklist geralmente requer que cada revisor verifique todas as informaes no artefato sob inspeo levando-o a lidar com uma quantidade considervel de informao pouco relevante. Tcnicas de leitura contornariam esse problema, ao focar a ateno do revisor nos aspectos do artefato relevantes ao propsito da reviso. Formulao das questes - As questes presentes em um checklist so freqentemente baseadas em dados histricos de defeitos detectados na organizao [Chernak 1996]. Caso tais dados no estejam disponveis, as questes do checklist so geralmente extradas da literatura. Em ambos os casos, revisores podem no prestar ateno em classes de defeitos ainda no detectadas em inspees anteriores. Por sua vez, as questes providas pelas tcnicas de leitura so provenientes de um acmulo de conhecimento adquirido por anos de experimentos executados na indstria e academia. Documentao - Checklist, ao contrrio de tcnicas de leitura, no requer que o revisor documente sua inspeo. Assim, o resultado da inspeo no passvel de repetio, sendo dependente do revisor que executou a inspeo, restringindo a disseminao de conhecimento e diminuindo a oportunidade de melhoria de processos. Aquisio de Conhecimento sobre o Domnio A utilizao de tcnicas de leitura requer que o revisor trabalhe ativamente com o artefato sob inspeo possibilitando o ganho de conhecimento sobre o domnio do problema. Esta caracterstica no observada em checklists, visto que o revisor orientado apenas a responder questes. Foco em Defeitos Ao proporcionar o ganho de conhecimento sobre o domnio do problema, tcnicas de leitura levariam descoberta de defeitos crticos. Checklist, por no possuir tal caracterstica, limitaria a deteco de defeitos de tal severidade. Direcionamento para Testes - A execuo de testes uma atividade custosa para o desenvolvimento de software [Glass 2002]. O uso de tcnicas de leitura, ao fornecer uma categorizao de defeitos e facilitar a descoberta de defeitos crticos para o sistema permite direcionar os esforos de testes, o que no acontece com o uso de checklist. Em vista disso, a utilizao de tcnicas de leitura supostamente traz mais benefcios para a conduo de inspees do que a abordagem com checklist, ou mesmo ad hoc. Na prxima seo, detalhamos a reviso sistemtica conduzida.

3. Aplicando uma Reviso Sistemtica: Tcnicas de Leitura para Artefatos de Software


Uma reviso sistemtica um meio de identificar, avaliar e interpretar toda pesquisa disponvel e relevante sobre uma questo de pesquisa, um tpico ou um fenmeno de interesse [Kitchenham 2004]. A conduo de uma reviso sistemtica supostamente apresenta uma avaliao justa do tpico de pesquisa medida que utiliza uma metodologia de reviso rigorosa, confivel e passvel de auditagem. Alm disso, uma reviso sistemtica deve obrigatoriamente conter o protocolo de busca executado de forma a permitir que a reviso seja repetida por outros pesquisadores interessados. Os estudos individuais que so analisados em uma reviso sistemtica so chamados de estudos primrios. A reviso sistemtica em si considerada um tipo de estudo secundrio. Em particular, pesquisadores conduzindo revises sistemticas devem despender esforos na identificao e relato de pesquisas que apiam e no apiam suas hipteses. Se os estudos identificados apresentam resultados consistentes, a reviso sistemtica prov indcios de que o fenmeno robusto e generalizvel a outros

contextos. Caso os resultados dos estudos sejam inconsistentes, as fontes de variao desses resultados podem ser estudadas. Maiores informaes sobre revises sistemticas podem ser encontradas em Biolchini et al. (2005). 3.1.Material Utilizado Para possibilitar a documentao da reviso sistemtica, facilitando a extrao e sumarizao dos dados, foram elaborados os seguintes formulrios: Formulrio de Conduo da Reviso: formulrio contendo campos para a armazenagem de informaes sobre a fonte onde a busca foi realizada, a data de realizao da busca, as combinaes de palavras-chave que proporcionaram a busca dos artigos e a lista dos artigos encontrados. Formulrio de Seleo de Estudos: formulrio contendo campos informando: nome do artigo, lista de autores, data de sua publicao, veculo de publicao do artigo, fonte de onde foi obtido e situao do artigo (pendente, includo e excludo). Formulrio de Extrao de Dados: formulrio contendo campos para o resumo do artigo, objetivo do estudo, descrio do estudo experimental, resultados do estudo, alm de comentrios adicionais do pesquisador que extraiu os dados, entre outros. 3.2.Protocolo da Reviso Objetivo Apesar do foco inicial da pesquisa estar na identificao de tcnicas de leitura para documentos de requisitos que apiem inspees de software OO, decidimos no restringir a busca apenas a esse tipo de tcnicas. A justificativa foi a possibilidade de obtermos as lies aprendidas e os resultados decorrentes de estudos experimentais envolvendo todas as tcnicas de leitura. Entretanto, no estvamos interessados apenas na identificao desses estudos. Necessitvamos avaliar quo efetiva e eficiente foi a utilizao da tcnica no contexto dos estudos experimentais realizados. Acreditvamos que as respostas a essas questes constituiriam um passo fundamental para a identificao de quaisquer necessidades de pesquisa envolvendo tcnicas de leitura. Caso as respostas fossem positivas, pretendamos executar novos estudos com o objetivo de levantar o grau de evidncia experimental obtido, visando a relatar os benefcios e as limitaes da tecnologia. Caso as respostas fossem negativas, pretendamos executar estudos experimentais para tentar responder nossas perguntas. Dessa forma, conduzimos uma reviso sistemtica cujo objetivo foi identificar, analisar e avaliar estudos experimentais envolvendo tcnicas de leitura de documentos de requisitos descritos em linguagem natural com o propsito de caracteriz-las com respeito usabilidade, eficincia na identificao de defeitos e efetividade3 na cobertura dos defeitos identificados do ponto de vista dos participantes dos estudos experimentais no contexto no qual os estudos foram executados.

Definimos efetividade como a quantidade de defeitos encontrados e eficincia como a quantidade de defeitos encontrados por unidade de tempo, por exemplo, hora de inspeo.

Formulao da pergunta 0: Quais so as tcnicas de leitura de documentos de requisitos descritos em linguagem natural? Interveno: Tcnicas de leitura de documentos de requisitos de software. Controle: Checklists e leitura ad hoc. Populao: Processos de inspeo de documentos de requisitos de software. Resultados: Tcnicas de leitura de documentos de requisitos de software. Aplicao: Projetos de desenvolvimento utilizando inspees de requisitos. Critrios de seleo de fontes Disponibilidade de consulta de artigos atravs da web; Presena de mecanismos de busca atravs de palavras-chave; Garantia de resultados nicos atravs da busca de um mesmo conjunto de palavraschave; Possuir nvel A de avaliao Qualis Capes [Qualis 2004]. Mtodos de busca de fontes As fontes sero acessadas via web, portanto, no contexto desta reviso, no ser considerada a busca manual. Palavras-chave requirement specification, requirement document, user requirement. reading technique. review, inspection, fault detection, defect detection. experimental software engineering, empirical software engineering. Listagem de fontes Peridicos da CAPES (IEEE journals, IEE journals, IEE conferences, IEEE conferences, ACM journals, ACM conferences, Kluwer journals e Elsevier journals). Tipo dos artigos Artigos contemplando a execuo de estudos experimentais. Idioma dos artigos Ingls. A justificativa de escolha do ingls como lngua oficial deve-se universalidade do idioma. A no incluso do portugus justifica-se pela necessidade dos estudos experimentais deverem ser passveis de repetio em diferentes contextos presentes em diferentes pases. Um estudo em portugus claramente limitaria essa possibilidade. Critrios de incluso e excluso dos artigos Os artigos devem estar disponveis na web; Os artigos devem apresentar textos completos dos estudos em formato eletrnico; Os artigos devem estar descritos em ingls; Os artigos devem contemplar tcnicas de inspeo de documentos de requisitos descritos em linguagem natural; Os artigos devem contemplar a execuo de estudos experimentais envolvendo tcnicas de inspeo de documentos de requisitos; A escala envolvida nos cinco critrios nominal envolvendo duas opes: sim ou no. Critrios de qualidade dos estudos primrios A avaliao da qualidade dos estudos ser baseada nos critrios para avaliao de estudos experimentais em engenharia de software de Kitchenham et al. (2002).

Processo de seleo dos estudos primrios O processo de seleo dos estudos primrios consistir dos seguintes passos: 1. Um pesquisador executa o processo de busca em cada uma das fontes selecionadas para identificar os artigos que contenham estudos experimentais; 2. Os artigos encontrados so obtidos da fonte e documentados na lista de artigos encontrados, presente no Formulrio de Conduo da Reviso; 3. Os artigos encontrados pelo processo de busca so selecionados pelos demais pesquisadores atravs da verificao dos critrios de incluso e excluso estabelecidos; a verificao executada mediante a leitura do abstract do artigo. 4. Os artigos includos e excludos so documentados na lista de artigos includos e lista de artigos excludos, respectivamente, presentes no Formulrio de Conduo da Reviso, juntamente com a justificativa de sua incluso ou excluso. 5. Os artigos includos so avaliados mediante a leitura do artigo inteiro; os artigos includos so documentados no Formulrio de Seleo de Estudos e encaminhados para a avaliao da qualidade dos estudos primrios. Os artigos excludos so documentados na lista de artigos excludos junto com a justificativa de excluso. Havendo divergncia, os pesquisadores entram em consenso sobre a seleo dos artigos. Avaliao da qualidade dos estudos primrios Os estudos selecionados mediante a execuo do processo de seleo dos estudos primrios sero avaliados pelos pesquisadores de acordo com os critrios de qualidade estabelecidos. O resultado da avaliao da qualidade de cada estudo ir determinar sua incluso ou excluso da lista dos estudos de onde sero extrados os dados. Estratgia de extrao de informao Para cada estudo selecionado durante a execuo do processo de avaliao da qualidade dos estudos primrios ser utilizado uma cpia do Formulrio de Extrao de Dados. Sumarizao de resultados Os resultados sero tabulados. Nenhuma meta-anlise ser realizada. O protocolo de reviso foi avaliado por um especialista gerando duas verses at sua aprovao final. 3.3.Conduo da Reviso A reviso sistemtica foi conduzida entre o final de 2004 e incio de 2005, durante um perodo de trs meses, totalizando 200 horas desde a definio do protocolo at a extrao dos dados. Ao todo foram analisados 278 artigos dos quais 38 foram selecionados e tiveram os seus dados extrados e analisados, de acordo com as recomendaes previstas no protocolo de reviso. Algumas fontes reconhecidamente importantes no contexto da pesquisa no foram contempladas pelo protocolo de reviso, haja vista que no atendiam aos critrios de seleo de fontes. Entre elas destacamos o ISERN4 que no possui mquina de busca. Entretanto, decidimos incluir os estudos presentes nessas fontes que se encaixavam ao contexto da reviso, para no prejudicar a abrangncia da reviso. Alm disso, alguns estudos que no estavam disponveis na web foram obtidos mediante

International Software Engineering Research Network. In: www.iese.fhg.de/network/ISERN/pub/isern_biblio_tech.html

contato com seus autores. Porm, as formas pelas quais esses estudos foram obtidos foram devidamente documentadas no formulrio de conduo de pesquisa. A reviso sistemtica conduzida, desde sua concepo at a extrao dos resultados encontra-se documentada [Mafra e Travassos 2005], de forma a permitir sua repetio e auditagem por pesquisadores interessados no estudo. Na prxima seo, apresentamos os principais resultados obtidos pela reviso sistemtica conduzida.

4. Resultados Obtidos
A seguir, descrevemos sucintamente as tcnicas de leitura encontradas pela reviso, destacando os principais resultados obtidos atravs da execuo de estudos experimentais. As referncias dos estudos encontram-se em Mafra e Travassos (2005).

DBR (Defect-Based Reading) - DBR [Porter 1994] uma famlia de tcnicas de


leitura para a deteco de defeitos em documentos de requisitos descritos em SCR [Heninger 1980], uma notao formal baseada em mquinas de estado. Cada tcnica DBR pode ser projetada para focar uma determinada classe de defeitos especficos notao SCR (omisso de funcionalidade, inconsistncia de tipos de dados etc). No contexto da reviso conduzida no estivemos interessados em DBR, haja vista que o protocolo de reviso restringia a pesquisa a requisitos descritos em linguagem natural.

PBR (Perspective-Based Reading) - A leitura com base em perspectiva (PBR)


[Shull 1998] uma famlia de tcnicas de leitura elaborada inicialmente para a deteco de defeitos em documentos de requisitos descritos em linguagem natural. Entretanto, sua utilizao foi estendida para inspees de projeto e cdigo-fonte. No contexto da reviso conduzida no consideramos a aplicao de PBR em inspees de cdigo-fonte. Descrio - PBR auxilia a atividade de deteco de defeitos ao observar quais informaes nos requisitos possuem mais ou menos importncia para as diferentes formas de utilizao do documento. Por exemplo, em um modelo de ciclo de vida de software, podemos esperar que o documento de requisitos tenha trs usos principais: (a) como base para a construo do modelo de projeto, (b) como base para a elaborao do plano de teste do sistema e (c) como descrio das funcionalidades do sistema, como mostra a Figura 1.

Figura 1 - uso do documento de requisitos ao longo do ciclo de vida do software Adaptado de Shull (1998)

Nesse sentido, PBR assegura que cada revisor avaliar o documento segundo uma dessas perspectivas ao fornecer um procedimento orientando-o a criar um modelo fsico com base nos requisitos. A construo do modelo ajudaria o revisor a enfocar sua reviso. Dessa forma, o revisor que assumisse a perspectiva de testador construiria um conjunto de casos de testes para um potencial plano de teste, o revisor responsvel pela perspectiva de projetista construiria um modelo de projeto e o revisor responsvel pela perspectiva de usurio construiria um manual contendo as funcionalidades envolvidas no sistema. O objetivo no duplicar o trabalho realizado em outros pontos do ciclo de

desenvolvimento do software, mas criar representaes que possam ser usadas como base para a criao futura de artefatos mais especficos e que possam revelar quo bem os requisitos conseguem apoiar as tarefas seguintes. Uma vez criado o modelo fsico, os revisores teriam de identificar possveis defeitos existentes. Para facilitar esse trabalho, a PBR fornece um conjunto de questes ajustadas para cada passo do procedimento de criao do modelo fsico, que so respondidas medida que o revisor percorre as etapas de sua construo. Quando os requisitos no fornecem informaes suficientes para responder s questes, isso significa que tambm no fornecem informaes suficientes para apoiar o usurio dos requisitos em suas tarefas, caracterizando a presena de um potencial defeito. Resultados Experimentais - No contexto da reviso conduzida, encontramos 19 estudos experimentais envolvendo PBR (Tabela 1).
Tabela 1 - Srie de experimentos envolvendo PBR

Estudo (Instituio Ano) Nasa-1996 Wales-1996 UFSCar-1997 Kaiserslautern-1997 Maryland-1998 Lund-1998 Kaiserslautern-1999 Bari-2000 Viena-2000 Viena-2001 Osaka-2001 Ericsson-2003 Kaiserslautern-2004 Bari-2004 Ericsonn-2004 COPPE-2003a COPPE-2003b UFSCar-2004 USP-2004

Ambiente Industrial Acadmico Acadmico Acadmico Acadmico Acadmico Acadmico Acadmico Acadmico Acadmico Acadmico Industrial Acadmico Acadmico Industrial Acadmico Acadmico Acadmico Acadmico

Questo de Pesquisa PBR vs. Tcnica usual da NASA. PBR (FPS) vs. ad hoc. PBR vs. checklist vs. ad hoc. PBR vs. ad hoc. PBR vs. ad hoc. Diferenas entre perspectives de PBR. PBR vs. checklist (aplicados a modelo OO). PBR vs. checklist vs. ad hoc. PBR vs. checklist. PBR vs. checklist. PBR vs. checklist (aplicados a modelo OO). PBR(testador) vs.checklist. Orientao ativa de PBR. Orientao ativa de PBR. PBR (testador) vs.checklist. Viabilidade de apoio ferramental. Viabilidade de apoio ferramental. PBR vs. checklist. PBR vs. checklist.

Dos 14 estudos avaliando a efetividade de PBR, seja comparando a tcnica com a abordagem de checklist ou com leitura ad hoc, 57% apresentaram resultados confirmando a superioridade de PBR, 29% falharam em demonstrar tal superioridade, enquanto 14% no apresentaram diferenas significativas. Resultados de Bari-2004 apontaram que a discrepncia entre os resultados obtidos pelos estudos pode ser explicada pela observao do baixo nvel de conformidade com o processo proposto por PBR. Alm disso, em Bari-2000, apenas 20% dos participantes admitiram ter seguido efetivamente PBR. Tal efeito tambm foi observado em NASA-1996. Nesse estudo, revisores tenderam a abandonar PBR, preferindo utilizar seu prprio processo tcito de leitura, quando inspecionaram um documento com domnio de problema familiar. Para minimizar esse efeito, Silva e Travassos (2004) propuseram um apoio ferramental para a aplicao de PBR, permitindo a coleta automtica de medidas para a avaliao do nvel de conformidade

com o processo de PBR. Os estudos de COPPE-2003a e COPPE-2003b avaliaram de forma positiva a viabilidade de utilizao desse apoio ferramental. Uma das principais caractersticas de PBR, a sua adaptabilidade a diferentes contextos, foi estudada em Wales-1996, onde foram utilizados cenrios para sistemas de informao, utilizando a tcnica de anlise por pontos de funo. Resultados qualitativos de Kaiserslautern-2004 apontaram a orientao ativa de PBR como o principal fator para o aumento na quantidade de defeitos detectados. No estudo de Ericsson-2003, participantes afirmaram que a criao de casos de testes, como resultado da aplicao de PBR (perspectiva de testador), aumentou o conhecimento sobre as expectativas do cliente e conseqentemente a qualidade da especificao de requisitos final. Em Ericsson-2004, participantes mostraram-se surpresos com o nmero relativamente alto de defeitos encontrados por PBR, uma vez que eles se dedicaram ao mximo na deteco de defeitos, utilizando checklist, em uma inspeo realizada anteriormente sobre o mesmo documento de requisitos. Entretanto, no estudo de Bari2004 no foram observados os supostos benefcios da orientao ativa de PBR. O ganho de conhecimento sobre o domnio, supostamente decorrente da orientao ativa de PBR, pode ser o responsvel pelo aumento na deteco de defeitos crticos para o sistema, como observado nos estudos de Viena-2000 e Ericsson-2004. Os resultados obtidos em Wales-1996 chamam a ateno sobre a quantidade de defeitos sintticos (muitas vezes pouco relevantes), como a localizao incorreta de informaes, detectados pela leitura ad hoc. Tal efeito pode ser explicado pela falta de orientao provida aos revisores. Porm, em Kaiserslautern-1997 no foi possvel encontrar diferenas significativas na deteco de defeitos crticos. Uma outra provvel conseqncia desse aumento do grau de conhecimento sobre o domnio, como observado no estudo de Bari-2004, o melhor desempenho de PBR comparado com checklist, durante a inspeo de documentos maiores e mais complexos. A diminuio na sobreposio dos defeitos detectados pelos revisores, devido utilizao de diferentes perspectivas que focam em diferentes aspectos dos requisitos, foi observada de forma satisfatria nos estudos de Viena-2000, Viena-2004 e Wales1996. Entretanto, os autores do estudo de Wales-1996 levantaram uma importante hiptese: no a utilizao de diferentes cenrios que aumenta a taxa de deteco de defeitos, mas sim a utilizao de uma estratgia bem definida para a decomposio do problema (separation of concerns). No estudo de Lund-1998 no foi observado tal efeito. Os estudos de Viena-2000 e Viena-2001 apontaram uma correlao positiva entre o nvel de experincia dos revisores com o aumento do desempenho na deteco de defeitos. Entretanto, os resultados de Nasa-1996, Maryland-1998 e Wales-1996 no apontaram diferenas significativas entre os desempenhos de participantes mais experientes e menos experientes aplicando PBR. Alm disso, os resultados de Viena2001 mostraram que a leitura baseada em checklist mais dependente da qualificao dos revisores do que PBR. Situao similar ocorreu em Wales-1996, onde participantes que tiveram maior desempenho aplicando leitura ad hoc foram os mais experientes. No estudo de Viena-2000 foi observado que a efetividade dos revisores aumenta com o esforo de inspeo at um certo limite, quando comea a decair. Para revisores aplicando a abordagem de checklist, esse pico foi entre 4 e 6 horas. Para revisores

aplicando PBR, o pico ficou entre 6 e 8 horas. Revisores com esforo abaixo ou acima desse intervalo tiveram menor desempenho. OORTs (Object-Oriented Reading Techniques) OORTs [Travassos et al. 1999] uma famlia de sete tcnicas de leitura que fornecem um procedimento para as revises individuais dos diferentes diagramas e documentos de projeto orientado a objetos. Descrio - O processo de leitura utilizando OORTs precisa ser em duas vias. Os diferentes diagramas de projeto so verificados (leituras horizontais) para assegurar que estejam consistentes entre si. Alm disso, necessria a verificao da consistncia entre os modelos de projeto e os requisitos do sistema (leituras verticais), para assegurar que o projeto do sistema est correto com relao aos requisitos funcionais. Como exemplo de aplicao da leitura horizontal OORTs, citamos uma situao onde diagramas de seqncia necessitassem ser comparados a mquinas de estado, identificando-se para um determinado objeto os eventos, as restries ou os dados que poderiam mudar a forma como as mensagens so enviadas para ele. Uma vantagem da famlia de tcnicas OORTs que poderamos selecionar apenas o subconjunto de tcnicas que correspondessem aos artefatos que devam ser revisados ou que so especialmente importantes em um determinado momento. O conjunto completo de tcnicas ilustrado na Figura 2. Cada linha entre os artefatos representa uma tcnica de leitura para ler um documento comparando-o com outro.

Figura 2 OORTs uma famlia de tcnicas para leitura de projeto orientado a objetos

Resultados Experimentais - Em 1998, Travassos et al. (1999) conduziram um estudo experimental na Universidade de Maryland com o objetivo de avaliar a viabilidade da utilizao de OORTs. O estudo utilizou 44 estudantes universitrios como participantes. Uma descoberta interessante foi que participantes aplicando tcnicas verticais tenderam a detectar mais defeitos de omisso de funcionalidades e fatos incorretos, enquanto participantes aplicando tcnicas horizontais detectaram significantemente mais defeitos de ambigidade e inconsistncia entre os modelos de projeto. Como resultado, revisores aplicando as diferentes tcnicas supostamente detectariam diferentes tipos de defeitos, tornando a posterior reunio de inspeo mais eficiente. O estudo serviu para identificar oportunidades de melhoria de OORTs. Segundo os autores de OORTs, a principal razo para o sucesso de PBR durante a inspeo de requisitos, que a tcnica requer um significante processamento semntico do leitor; o leitor deve entender o documento o suficiente para produzir um artefato adicional. OORTs por sua vez exige um processamento sinttico, onde os leitores so instrudos a verificar se determina informao est presente ou no em outras partes do documento.

Em razo disso, os autores propuseram estender a tcnica para instruir o leitor a criar um modelo fsico (ex.: cenrios de teste) para aumentar o seu entendimento semntico. UBR (Usage-Based Reading) - UBR [Thelin 2004] uma tcnica de leitura que auxilia a deteco de defeitos severos do ponto de vista do usurio. Descrio - UBR foca na leitura orientada por um modelo de casos de uso priorizados em ordem de importncia para o usurio do sistema, durante a fase de preparao de um processo de inspeo de software. A premissa bsica permitir que as expectativas do usurio governem a inspeo. Os modelos de caso de uso poderiam ser utilizados para inspees em todas as fases de desenvolvimento (requisitos, projeto, cdigo etc) de um projeto especfico. Durante a inspeo, os revisores leriam o documento executando manualmente os casos de uso e tentando detectar defeitos que so mais importantes de acordo com a prioridade estabelecida e, por conseguinte, para o usurio. Segundo seus autores, conceitualmente UBR est relacionada com a perspectiva de usurio de PBR. Entretanto, os autores de UBR apontam algumas diferenas: (a) na perspectiva de usurio de PBR, revisores desenvolvem casos de uso baseados no documento de requisitos de forma a detectarem defeitos. Em UBR os casos de uso so utilizados como guias para os artefatos inspecionados; (b) o objetivo de UBR melhorar a eficincia e efetividade ao direcionar os esforos de inspeo para os casos de uso mais importantes sob o ponto de vista dos usurios; PBR tem como objetivo melhorar a efetividade da inspeo ao minimizar a sobreposio entre os defeitos encontrados pelos diferentes revisores; (c) os cenrios de PBR so genricos, ou seja, os cenrios desenvolvidos para um tipo de artefato (ex.: requisitos) podem ser utilizados para todos os artefatos do mesmo tipo. Os cenrios UBR, por sua vez, so especficos para cada projeto, o que significa que os casos de uso poderiam ser utilizados apenas dentro do projeto nos quais foram desenvolvidos. Entretanto, poderiam ser utilizados para inspees de requisitos, projeto e cdigo e apoiar a especificao de teste. Os autores no tecem comentrios comparando UBR com a tcnica de leitura vertical OORTs que avalia modelos de projeto OO com diagramas de casos de uso. Resultados Experimentais - No contexto da reviso conduzida, encontramos quatro estudos experimentais envolvendo UBR (Tabela 2). A srie de experimentos foi realizada em ambientes acadmicos, na Sucia, utilizando estudantes universitrios como participantes. O material inspecionado consistiu de um documento de requisitos descrito em linguagem natural e um modelo de projeto descrito em SDL [SDL 1993]. Em Lund-2000 foi observado que a atividade de ordenar os casos de uso, segundo a importncia para o usurio, contribui para tornar a inspeo mais efetiva e eficiente, permitindo a deteco de defeitos crticos para o sistema. A atividade de ordenao provavelmente aumenta o entendimento do revisor sobre o funcionamento do sistema, representado pelos cenrios dos casos de uso.
Tabela 2 - Srie de experimentos envolvendo UBR

Estudo (Instituio Ano) Lund-2000 Blekinge-2001 Lund-2001 Lund-2003

Questo de Pesquisa A priorizao de casos de uso afeta os resultados de UBR? UBR mais eficiente e efetiva que checklist? necessrio desenvolver casos de uso durante a inspeo UBR? UBR mais eficiente e efetiva que checklist?(Repetio de Blekinge-2001)

Os estudos de Blekinge-2001 e Lund-2003 observaram que UBR foi mais eficiente e efetiva do que checklist. Alm disso, UBR detectou defeitos que no foram detectados pelo uso de checklist. Finalmente, UBR possibilitou a deteco de defeitos considerados crticos para o sistema, o que no ocorreu com checklist. Em Lund-2001 foi observado que a utilizao de casos de uso pr-desenvolvidos deixa os revisores mais focados na deteco de defeitos. Por outro lado, o desenvolvimento de casos de uso durante a inspeo levou descoberta de novos defeitos, provavelmente devido ao aumento do grau de entendimento dos revisores sobre o sistema, confirmando Travassos et al. (1999). Dessa forma, foi concludo que uma abordagem hbrida de UBR, onde casos de uso detalhados fossem desenvolvidos apenas para as funcionalidades mais cruciais do sistema, tornaria a inspeo mais efetiva. Uma observao, que merece ateno, que a srie de experimentos sobre UBR foi realizada pela mesma equipe que definiu a tcnica, o que poderia ter acarretado inconscientemente o vis dos resultados [Silva e Travassos 2004]. MBR (Metric-Based Reading) - MBR [Bernardez et al. 2004] uma tcnica de leitura para deteco de defeitos em modelos de casos de uso. Descrio - MBR adota um conjunto de heursticas para orientar os revisores a detectarem defeitos em modelos de casos de uso. A premissa por trs dessas heursticas que os valores de certas mtricas de casos de uso podem ser vistos como potenciais indicadores de defeitos. Os autores pesquisaram o relacionamento causa-efeito entre os valores dessas mtricas e a presena de certos tipos de defeitos. Dessa forma, cada heurstica apresenta uma faixa de valores onde, valores fora dessa faixa, seriam indcios de provveis defeitos nos modelos de caso de uso. Resultados Experimentais - A proposta da tcnica MBR relativamente recente (ano de 2004). Por isso, apenas um estudo experimental foi realizado investigando seus supostos benefcios, comparando MBR com a abordagem de checklist. O estudo utilizou 146 estudantes de um curso de graduao de cincia da computao que inspecionaram um documento contendo modelos de caso de uso. MBR foi mais efetiva do checklist no que diz respeito quantidade de defeitos detectados. No que se refere eficincia, os resultados no apontaram diferenas significativas do ponto de vista estatstico entre MBR e checklist. Os autores do experimento relatam a necessidade de novos experimentos para possibilitar a investigao dos pontos fortes e fracos de MBR.

5. Discusso dos Resultados


Diante dos resultados obtidos, PBR apresenta um campo mais maduro para discusso, visto que h uma quantidade significativa de estudos disponveis na literatura investigando seus supostos benefcios e limitaes. As outras tcnicas encontradas (OORTs, UBR e MBR), embora possuam resultados de estudos incluindo aplicao industrial, ainda encontram-se em fase de investigao. Porm, os resultados promissores obtidos nos levam a crer tambm na viabilidade de utilizao dessas tcnicas. A seguir, discutimos as caractersticas de PBR sobre as quais foi possvel identificar certo grau de consenso na comunidade acadmica e o que ainda necessita de mais investigao.

5.1. Indcios Obtidos De acordo com os resultados apresentados nos estudos utilizados nesta reviso sistemtica, encontramos indcios que PBR apresenta melhor desempenho do que a abordagem checklist, no que se refere efetividade de deteco de defeitos em documentos de requisitos. Alm disso, a aplicao de PBR possibilita ganho considervel sobre o conhecimento do domnio permitindo a identificao de defeitos mais severos para o sistema. Uma indicao forte desses estudos de que PBR deve ser fortemente recomendada para inspees curtas (2 horas) com equipes pequenas (3 revisores). 5.2. Questes em Aberto Apesar dos resultados promissores obtidos, certos pontos sobre PBR ainda no foram esclarecidos de forma satisfatria, requerendo maior investigao. Como exemplo, citamos a necessidade de estudo sobre o efeito da aplicao de PBR em documentos de requisitos de tamanho considervel. Muitos dos estudos observados utilizaram documentos que no possuam o tamanho normalmente encontrado em ambiente industrial. Outro importante fator a ser investigado qual a combinao tima entre limite de tempo e quantidade de participantes durante uma inspeo PBR. A hiptese de que PBR diminui a sobreposio de defeitos encontrados pelas diferentes perspectivas ainda no foi estudada de forma satisfatria. Uma possvel alternativa seria direcionar a aplicao de cada perspectiva a um determinado conjunto de caractersticas de qualidade. Alm disso, necessrio avaliar o impacto de fatores culturais nos resultados da leitura PBR [Shull et al. 2004]. Como sugesto para estudos futuros, indicamos a necessidade de uma avaliao mais rigorosa sobre a conformidade com a qual a tcnica PBR foi executada. A avaliao da qualidade dos modelos fsicos gerados pela aplicao de PBR poderia prover indcios de que o participante aplicou PBR de forma satisfatria. Um outro ponto sugerido a caracterizao dos participantes do estudo. O estabelecimento de um conjunto de critrios padro permitiria uma melhor comparao entre os estudos executados. Alm disso, a aplicao de pr-avaliaes poderia minimizar possveis discrepncias entre o nvel de conhecimento que o participante assumiu possuir e o que ele realmente possui.

6. Garantia da Qualidade em Sistemas OO Perspectivas Futuras


Diante dos resultados, notamos a carncia na literatura de tcnicas de leitura que apiem a construo de modelos de projeto OO. Estudos envolvendo a perspectiva de projetista adotada por PBR utilizaram tcnicas de anlise estruturada para construo de diagramas de fluxo de dados. Nos estudos envolvendo UBR, foram inspecionados documentos de projeto descritos em SDL. Por sua vez, a famlia OORTs, embora relacionada a inspees de modelos de projeto OO, no prev a construo de tais modelos. Acreditamos que a aplicao de tcnicas de leitura aumentaria a qualidade no desenvolvimento de sistemas OO. Resultados obtidos do estudo de Maryland-1998, onde participantes aplicando a leitura vertical OORTs comparando modelos de projeto

OO com documentos de requisitos detectaram defeitos do tipo omisso de funcionalidades e fatos incorretos, reforam essa idia. Alm disso, a possibilidade de prover orientao efetiva, sobre como capturar de forma satisfatria os conceitos relacionados ao domnio do problema, torna a aplicao de tcnicas de leitura uma alternativa vivel para a construo de modelos de projeto OO de qualidade. Estudos envolvendo PBR demonstraram que a construo de modelos fsicos, como forma de possibilitar a deteco de defeitos em documentos de requisitos, permitiu um maior ganho de conhecimento sobre o domnio do problema. Por sua vez, estudos envolvendo OORTs e UBR demonstraram a viabilidade da utilizao de modelos de casos de uso na avaliao do comportamento dinmico de sistemas OO. Assim, a definio e avaliao experimental de tcnicas de leitura que apiem a construo de modelos de projeto OO passa a ser um desafio de pesquisa interessante.

7. Concluses
A qualidade de um produto de software dependente do processo pelo qual o software foi construdo e revisado. Entretanto, a aplicao de atividades de verificao e validao em sistemas OO tem se mostrado difcil e pouco eficiente devido ao aumento de complexidade alcanado com o advento do paradigma OO. Nesse sentido, descrevemos como a conduo rigorosa de inspees poderia aumentar a qualidade do software OO, ao permitir a remoo de defeitos no ponto onde eles so menos custosos de serem removidos: a fase de requisitos. Alm disso, discutimos como academia e indstria de software tm trabalhado em conjunto para aumentar o desempenho de inspeo de software propondo a utilizao de tcnicas de leitura. Como principal contribuio do artigo, destacamos a apresentao de um estudo secundrio, tambm conhecido como reviso sistemtica, conduzido com o objetivo de identificar, analisar e avaliar tcnicas de leitura para documentos de requisitos propostas na literatura. O artigo descreve explicitamente o objetivo da reviso e os critrios adotados para a seleo de fontes e estudos. A conduo da reviso sistemtica permitiu, para cada tcnica identificada, o levantamento de seus pontos fortes e fracos obtidos experimentalmente, possibilitando assim o direcionamento da pesquisa na rea de tcnicas de leitura e a indicao do que supostamente funciona e o que no funciona na aplicao dessas tcnicas. No futuro, pretendemos conduzir estudos experimentais investigando a aplicao de tcnicas de leitura para a construo de modelos de projeto OO. Esperamos assim, estar contribuindo para a busca de qualidade no desenvolvimento de software no que se refere a mtodos de garantia da qualidade.

Referncias
Basili, V., Green, S., Laitenberger, O., Lanubile, F., Shull, F., Srumgrd, S., Zelkowitz, M., (1996), The Empirical Investigation of Perspective-Based Reading. Empirical Software Engineering: An International Journal, 1(2): 133-164, 1996. Basili, V., (1997), Evolving and Packaging Reading Technologies. The Journal of Systems and Software, 38(1): 3-12, July 1997. Bernardez, B., Genero, M., Duran, A., Toro, M.,, (2004), A controlled experiment for evaluating a metric-based reading technique for requirements inspection, Software Metrics, 2004. Proceedings of 10th International Symposium on 14-16 Sept. 2004 Pages: 257 268. Biffl, S.; Halling, M., (2000), Software product improvement with inspection, Euromicro Conference, 2000. Proceedings of the 26th, 5-7, Sept. 2000 Pages:262 - 269 vol.2

Biolchini, J., Mian, P.G., Natali, A.C., Travassos, G.H. (2005), Systematic Review in Software Engineering: Relevance and Utility, Relatrio Tcnico, PESC - COPPE/UFRJ. Chernak, Y., (1996), A Statistical Approach to the Inspection Checklist Formal Synthesis and Improvement. IEEE Transactions on Software Engineering, 22(12):866-874, December. Ciolkowski, M., Laitenberger, O., Rombach, D., Shull, F., Perry, D., (2002), Software Inspections, Reviews & Walkthroughs, 24th International Conference on Software Engineering, May 19 - 25, 2002, Orlando, Florida. Fagan M. E., (1976), Design and Code Inspection to Reduce Errors in Program Development, IBM Systems Journal 15-3, 182-211. Glass, R., Facts and Fallacies of Software Engineering, Addison-Wesley, 2002. Hatton, L., (1998), Does OO really match the way we think? IEEE Software, 15(3):46-54, May/June. Heninger, K., (1980), Specifying Software Requirements for Complex Systems: New Techniques and their Application. IEEE Transactions on Software Engineering, SE-6(1):2-13, January. Kitchenham, B., Pfleeger, S., Pickard, L., Jones, P., Hoaglin, D., Emam, K., Rosenberg, J., (2002), Preliminary Guidelines for Empirical Research in Software Engineering, IEEE Transactions on Software Engineering, vol. 28, n 8, August 2002. Kitchenham, B. (2004), Procedures for Performing Systematic Reviews. Joint Technical Report Software Engineering Group, Department of Computer Science Keele University, United King and Empirical Software Engineering, National ICT Australia Ltd, Australia. Knight, J., Myers, E. A., (1993), An Improved Inspection Technique. Communications of the ACM, 36(11): 51-61, November, 1993. Laitenberger, O., DeBaud, J-M, (1998), An Encompassing Life-Cycle Centric Survey of Software Inspection, ISERN-98-32. Lima, G., Travassos, G. H., (2004), Testes de Integrao Aplicados a Software Orientado a Objetos: Heursticas para Ordenao de Classes. In: III SBQS, Braslia, DF. Mafra, S., Travassos, G., (2005), Uma Reviso Sistemtica Aplicada a Tcnicas de Leitura, Monografia Final do Curso de Engenharia de Software OO, PESC, COPPE/UFRJ. Mills, H., (1991), Cleanroom Engineering, American Programmer, Pages 31-37, May 1991. Porter, A, Votta, L, (1994), An experiment to assess different defect detection methods for software requirements inspections, Proceedings of the 16th international conference on Software engineering, May 1994. Qualis, (2004), Qualis - Sistema de Classificao de Peridicos, Anais e Revistas, http://qualis.capes.gov.br, acessado em 20-12-2004. SDL, (1993), Specification and Description Language, ITU-T Recommendation Z.100. Shull, F., (1998), Developing Techniques for Using Software Documents: A Series of Empirical Studies, PhD Thesis, Department of Computer Science, University of Maryland, USA. Shull, F., Mendona, M., Basili, V., Carver, J., Maldonado, J., Fabbri, S., Travassos, G., Ferreira, M., (2004), Knowledge-Sharing Issues in Experimental Software Engineering, Empirical Software Engineering, Volume 9 Issue 1-2. Silva, L., Travassos, G., (2004), Tool-supported unobtrusive evaluation of software engineering process conformance, Proceedings of the International Symposium on Empirical Software Engineering, 1920 Aug. 2004 Pages:127 - 135, ISESE '04. Travassos, G., Shull, F., Fredericks, M., Basili, V., (1999), Detecting defects in object-oriented designs: using reading techniques to increase software quality, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, Volume 34 Issue 10, October 1999. Thelin, T., Runeson, P., Wohlin, C., Olsson, T, Anderson, C., (2004), Evaluation of Usage-Based Reading-Conclusions after Three Experiments, Empirical Software Engineering, Volume 9, Issue 12, March. Pages: 77-110. Weber, K., Rocha, A. R., Alves, A., Ayala, A., Gonalves, A., Paret, B., Salviano, C., Machado, C., Scalet, D., Petit, D., Arajo, E., Barroso, M., Oliveira, K., Oliveira, L., Amaral, M., Campelo, R., Maciel, T.,, (2004), Modelo de Referncia para Melhoria de Processo de Software: uma abordagem brasileira. XXX Conferencia Latino-americana de Informtica, Arequipa - Peru, 2004.

Anda mungkin juga menyukai