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).
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 Nota do DevMan 2).
A utilização da dinâmica de sistemas no contexto da engenharia de software busca contribuir para a simulação de ambientes de desenvolvimento de software, servindo como um modelo de apoio à decisão para os gestores, possibilitando assim uma melhoria de qualidade em todo o processo de desenvolvimento de software.
Através do modelo, gerentes de projetos podem configurar e simular cenários para auxiliá-los na análise e tomadas de decisão relativas às características da empresa, permitindo testar situações novas antes de colocá-las em prática. O modelo foi construído embasado em dados disponíveis na literatura, garantindo sua consistência.
...Confira outros conteúdos:
Programação x Concurso Público
Osvaldo aprendeu programação
DevMedia x Netflix: Onde investir meu...
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.