SMarty Check: Conhecendo a Técnica de Inspeção de software
Veja nesse como funciona a Inspeção de software baseada em checklist, conhecida como SMarty Check.
Este Artigo faz parte da Revista Engenharia de Software Magazine 67 Ver Revista
Artigos SMarty Check: Conhecendo a Técnica de Inspeção de software
Neste artigo será apresentado um estudo sobre técnicas de inspeção de software e do que se trata a abordagem SMarty. Também será apresentada a técnica SMartyCheck, demonstrando sua aplicação com exemplos em linhas de produto de software baseadas em UML. Esse tema é útil para gerentes de qualidade de software, pesquisadores da área e estudantes e engenheiros interessados em melhorar a qualidade do produto e do processo de software alinhados à técnica linha de produto de software.
Autores: Edson A. Oliveira Junior e Diogo Cassio Pereira
Linha de Produtos de Software (LPS) compreende um conjunto de produtos que juntos se destinam a um segmento de mercado específico ou uma missão particular. A ideia de LPS é explorar as características comuns que os produtos similares possuem, para agilizar as suas construções.
Entretanto, o conceito de LPS é relativamente novo e pode ser considerado uma das mais promissoras abordagens de reuso de software que foi amplamente adotada pela indústria.
O aumento pelo interesse em LPS se deve principalmente ao fato de as organizações perceberem que podem se beneficiar muito mais com um reuso de software mais planejado e direcionado a um domínio específico, ao invés de continuar reusando componentes de software individuais de forma oportunista, acidental e adaptando-os a inúmeras situações.
Atualmente, grande parte das organizações utiliza uma quantidade enorme de informações e depende de aplicações de software para desenvolver seus trabalhos diante de um mercado competitivo que exige da empresa a informação para conduzir seus negócios. Para isso, as empresas devem possuir sistemas de informação adequados às mudanças impostas pelo mercado.
O uso dessas informações é uma atividade de grande importância, pois somente com um software desenvolvido a partir das necessidades reais de uma empresa, pode-se garantir que as organizações não serão prejudicadas pela falta de informações.
Para acompanhar essas exigências, é primordial que os sistemas em processo de desenvolvimento utilizem técnicas para inspecionar o produto que está sendo desenvolvido. Para isso, é importante gerar uma boa documentação ao longo do ciclo de vida do sistema.
Faz-se necessário avaliar o produto do software, se os artefatos especificados estão de acordo com as necessidades e expectativas do usuário e da organização e em conformidade com os produtos finais.
Inspeção de software é uma forma de revisão eficiente e frequentemente utilizada pela indústria. A literatura aponta que a comunidade de LPS vem buscando aplicar os conceitos já estabelecidos de inspeção de software em modelos de variabilidade.
A abordagem SMarty vem sendo amplamente utilizada para gerenciar variabilidades em projetos de LPS baseadas em UML. Assim, uma técnica de inspeção de software que toma como base SMarty se torna uma ferramenta poderosa na busca por defeitos em artefatos que contem variabilidade em LPS como, por exemplo, em modelos de casos de uso.
A inspeção é uma técnica 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 previamente 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 desenvolvimento do software, leva à detecção de 60% a 90% dos defeitos potenciais em um projeto de software.
Para isso, o processo de Garantia da Qualidade utiliza-se de atividades de verificação, validação com o intuito de encontrar defeitos em todas as etapas do desenvolvimento. Essas atividades são muito importantes, pois cuidam de analisar diversos pontos do processo de desenvolvimento, impedindo que um defeito se propague para as fases posteriores do projeto. A Figura 1 mostra que a inspeção de software pode ser aplicada em diferentes artefatos.