Apoio a decisões no processo de inspeção de software - Revista Engenharia de Software Magazine 57

Este artigo apresenta um modelo de dinâmica de sistemas que permite avaliar, via simulação, os impactos da utilização de inspeções em várias etapas do ciclo de desenvolvimento de projetos de software.

Fique por dentro
Artigo do tipo Teórico
Recursos especiais neste artigo:
Contém nota Quickupdate, Conteúdo sobre boas práticas.
Autores: Jailton Junior de Sousa Coelho e José Luis Braga.

Apoio a decisões no processo de inspeção de software
Uma das formas de melhorar a qualidade de software é a aplicação de inspeções nos artefatos desenvolvidos ao longo do processo de desenvolvimento. Embora as vantagens de se utilizar inspeções de software sejam conhecidas, a forma como as inspeções são realizadas na prática pelas organizações de software ainda é pouco sistematizada e seu potencial raramente é explorado. Este artigo apresenta um modelo de dinâmica de sistemas, envolvendo grande parte das variáveis que influenciam fortemente na eficiência da inspeção. Através do modelo é possível reproduzir cenários nos quais seria caro ou perigoso experimentar na realidade, sendo possível analisar os impactos que a inspeção pode trazer no processo de desenvolvimento, diminuindo riscos.

Em que situação o tema é útil
Este artigo apresenta um modelo de dinâmica de sistemas que permite avaliar, via simulação, os impactos da utilização de inspeções em várias etapas do ciclo de desenvolvimento de projetos de software, economizando recursos e permitindo reproduzir cenários nos quais seria caro ou perigoso experimentar com problemas no mundo real.

Através do modelo, gerentes de projetos podem configurar e simular cenários para auxiliá-los na análise e tomada de decisão relativa às características da empresa, permitindo testar situações novas antes de colocá-las em prática.

O uso do modelo torna-se atrativo quando se pretende estimar o total de defeitos distintos do produto e ao mesmo tempo ter acesso a uma estimativa da efetividade do sistema de inspeção, medida que é utilizada por algumas empresas como um critério para continuidade ou não da inspeção, ou para reinspeção de unidades de produtos.

A tomada de decisão é uma atividade importante e complexa na engenharia de software. Geralmente é um processo não sistemático, uma vez que tipicamente se baseia em experiência pessoal sem o uso de modelos explícitos. O desenvolvimento de software é um processo onde cada pessoa envolvida constantemente toma decisões, tanto técnicas quanto gerenciais.

A capacidade de enxergar e compreender o sistema como um todo é fundamental nas decisões. Em projetos de software, os gestores quando buscam visualizar de forma integrada todos os fatores de influência do seu processo de desenvolvimento, de maneira que terão maior capacidade em tomar decisões mais adequadas. Entretanto, gestores acabam optando por decisões reativas, considerando apenas o problema presente, sem relacioná-lo com o seu ambiente e demais fatores correlacionados. Isso se torna um risco relevante no projeto, uma vez que decisões gerenciais tomadas de maneira equivocada podem levar a grandes prejuízos e mais do que isso, podem causar falhas críticas no software. Logo, é indispensável o uso de ferramentas que auxiliem os gerentes em suas tomadas de decisão, identificando os riscos antes de eles se materializarem.

A qualidade do produto de software é um aspecto que deve ser acompanhado durante todo o processo de desenvolvimento. A participação humana é um fator de grande presença nos projetos de software, justificando a ocorrência de defeitos, até mesmo se as melhores técnicas e procedimentos forem utilizados. Com isso, fica clara a importância de um processo de garantia da qualidade que atue em todas as fases do processo de desenvolvimento. Revisões de artefatos de software têm se mostrado uma abordagem eficiente e de baixo custo para encontrar defeitos, reduzindo o retrabalho e melhorando a qualidade dos produtos (ler Nota do DevMan 1).

Nota DevMan 1. Inspeção de Software

A inspeção é um tipo particular de revisão que contribui para garantir a qualidade do produto de software. Todas as etapas do processo de desenvolvimento de software são suscetíveis à incorporação de defeitos, que podem ser detectados pela inspeção e posteriormente removidos.

É importante destacar que quanto mais cedo esses defeitos forem removidos, menor será o custo de desenvolvimento e manutenção do produto. Experiências têm comprovado que a inspeção, quando realizada no início do processo de desenvolvimento do software, pode levar à detecção de 60% a 90% dos defeitos potenciais.

Embora muitas organizações de software realizem revisões, a forma como são realizadas ainda é pouco sistematizada. O conhecimento utilizado na área de inspeções de software também é pouco utilizado e assim, seu potencial raramente é explorado. Este argumento é baseado em três observações sobre as organizações participantes do levantamento de dados apresentado no artigo: (1) revisões raramente cobrem sistematicamente todas as fases de desenvolvimento de software (40% realizam inspeções em requisitos e 30% realizam inspeções em código), (2) muitas vezes a atividade de detecção de defeitos não é realizada sistematicamente (cerca de 60% não conduzem uma atividade de detecção de defeitos regularmente) e (3) cerca de 40% das organizações não coletam dados e 18% coletam dados e não os utilizam em suas análises.

Dada a importância do processo de inspeção e a complexidade das relações entre as variáveis dinâmicas envolvidas nessa fase do processo de desenvolvimento de software, torna-se indispensável o uso de ferramentas que permitam enxergar o contexto como um todo. A dinâmica de sistemas é uma dessas ferramentas e será explorada neste artigo para permitir uma melhor visualização do contexto e auxiliar na tomada de decisões sistêmicas (ler "

[...] continue lendo...

Artigos relacionados