Eng. Soft. 04
Eng. Soft. 04
Eng. Soft. 04
PROPÓSITO
Compreender a importância do planejamento, garantia e controle da qualidade, através de
técnicas adequadas de medições, seleção de métricas e realização de diferentes tipos de testes.
PREPARAÇÃO
Não existem pré-requisitos operacionais para o tema.
OBJETIVOS
MÓDULO 1
MÓDULO 2
Explicar o processo da garantia de qualidade de software
MÓDULO 3
MÓDULO 4
INTRODUÇÃO
O software tem um destaque cada vez maior na vida moderna. Podemos imaginar a complexidade
de um software embarcado em uma aeronave com 500 passageiros ou um software que gerencia
o tráfego aéreo de uma grande cidade.
A referida equipe tem uma composição multidisciplinar, refletindo uma característica do software:
A complexidade. O trato desta complexidade requer a aplicação da Engenharia de Software, que
por sua vez tem como foco a camada qualidade. A referida camada garante que os requisitos que
atendem às expectativas do usuário serão cumpridos.
A cada dia, o produto software está mais presente nas nossas vidas, quer por meio das redes
sociais, em nossos veículos ou nas nossas residências.
DIJKSTRA, 1972
Importante destacar que o aprimoramento tecnológico do hardware nos últimos anos permitiu o
desenvolvimento de softwares cada vez mais complexos, tendo um forte impacto na indústria de
software.
EXEMPLO
Ambos os exemplos possuem uma característica comum: A complexidade. A melhor tratativa para
a complexidade é a aplicação de metodologia que permita a decomposição do problema em
problemas menores de forma sistemática, cabendo à engenharia de software essa sistematização.
QUALIDADE
A camada qualidade garante que os requisitos que atendem às expectativas do usuário serão
cumpridos.
PROCESSO
A camada de processo determina as etapas de desenvolvimento do software.
MÉTODOS
A camada de métodos define os artefatos gerados em função da técnica de modelagem adotada.
FERRAMENTAS
A camada ferramentas estimula a utilização de ferramentas CASE.
CASE
É uma classificação que abrange todas as ferramentas baseadas em computadores que auxiliam
atividades de Engenharia de software, desde análise de requisitos e modelagem até programação
e testes.
ATENÇÃO
QUALIDADE DE SOFTWARE
De acordo com Pressman (2016), a qualidade de software é definida como uma gestão de
qualidade efetiva, aplicada de modo a criar um produto útil que forneça valor mensurável para
aqueles que o produzem e para aqueles que o utilizam.
Roger Pressman
GESTÃO DE QUALIDADE
Permite estabelecer uma infraestrutura de suporte ao desenvolvimento de software com
qualidade.
PRODUTO ÚTIL
Inclui o atendimento às necessidades dos usuários, ou seja, atendimento aos requisitos, sendo
esse produto isento de defeitos.
VALOR MENSURÁVEL
Permite a agregação de valor aos usuários e ao fabricante, sendo que nesse último caso, os
engenheiros de software terão menos trabalho de manutenção e mais tempo disponível na
construção de novas aplicações.
Controle de qualidade: Inclui a definição e aprovação de processos que assegurem que a equipe
de desenvolvimento de software tenha seguido os procedimentos e os padrões de qualidade de
projeto.
PROCESSO
Podemos destacar que o processo de desenvolvimento do software exige que diversas decisões
sejam tomadas ao longo do mesmo. Portanto, se desejamos produzir software com qualidade, é
necessário garantir a qualidade em todas as etapas do processo.
PRODUTO
Destacamos que softwares mal testados provocam prejuízos enormes às empresas, pois um
simples erro poderá, por exemplo, gerar requisições de compras desnecessárias, produzir
indicadores falsos de produtividade, entre outros; podem, também, afetar o processo de tomada
de decisão de gerentes e executivos que apoiam-se nas informações para minimizar riscos,
direcionar esforços, promover investimentos, sempre na busca da excelência operacional, pois a
qualidade das decisões está intimamente ligada à qualidade das informações disponibilizadas
pelos softwares organizacionais.
QUALIDADE DO PROCESSO
Processo é uma sequência de etapas que permitem a geração de um produto, no nosso caso, o
software.
ATENÇÃO
Basicamente, quanto maior a complexidade de um sistema, mais formal deverá ser o processo
adotado.
Uma metodologia de processo genérica, segundo Pressman (2016), compreende cinco atividades:
COMUNICAÇÃO
PLANEJAMENTO
MODELAGEM
CONSTRUÇÃO
Inclui, a partir dos modelos gerados, a codificação e os testes de software de acordo com o
planejado.
ENTREGA
Disponibiliza o produto em produção de acordo com o planejado.
Os processos devem estar estruturados com mecanismos de detecção de defeitos nos diversos
artefatos gerados durante o processo, com o objetivo de evitar a propagação de defeitos nas fases
seguintes, refletindo na inserção de defeitos durante a codificação. Os artefatos incluem qualquer
entrega gerada durante o processo de software, incluindo, entre outros, os documentos de
requisitos, os modelos, bem como o produto software.
COMENTÁRIO
Usualmente, os testes estão relacionados ao produto software, mas podemos aplicar testes em
todas as tarefas do processo de desenvolvimento de software, sendo esses denominados de
testes de verificação, conhecidos também como testes estáticos. Os objetivos desses testes são
os artefatos gerados durante todo o processo de desenvolvimento do software, tal como o
diagrama de classes ou o diagrama de casos de uso.
ATENÇÃO
QUALIDADE DO PRODUTO
Pressman (2016) descreve os fatores de qualidade do produto software de McCall, sendo uma
proposta de categorização dos fatores que afetam a qualidade de software. Esses fatores de
qualidade de software, apresentados na Figura 4, focam em três etapas de um produto de
software: revisão do produto, transição e operação.
Figura 4 – Fatores de qualidade de software de McCall.
Fonte: O Autor.
Vejamos uma descrição dos referidos fatores, cabendo destacar que a avaliação da qualidade de
uma aplicação usando esses fatores possibilitará uma sólida indicação da qualidade de um
software:
Confiabilidade - O quanto se pode esperar que um programa realize a função pretendida com a
precisão exigida.
Integridade - O quanto o acesso ao software ou dados por pessoas não autorizadas pode ser
controlado.
Usabilidade - Esforço necessário para aprender, operar, preparar a entrada de dados e interpretar
a saída de um programa.
Facilidade de manutenção - Esforço necessário para localizar e corrigir um erro em um
programa.
Testabilidade - Esforço necessário para testar um programa de modo a garantir que ele
desempenhe a função destinada.
A qualidade do produto pode ser garantida por meio de um sistemático plano de testes executado
durante a etapa de codificação do processo de software, sendo esses testes denominados de
testes de validação.
Inicialmente, ocorre a validação da estrutura interna da unidade de software, bem como sua
aderência aos requisitos estabelecidos.
Em seguida, a validação da sua integração com as unidades de software desenvolvidas
anteriormente, com destaque para as validações das interfaces dos componentes de software.
Finalmente, ocorre a validação funcional e não funcional do software como um todo, sendo os
usuários envolvidos nessa etapa.
Os testes de software podem sofrer um alto nível de automação, o que possibilita a criação de
complexos ambientes de testes que simulam diversos cenários de utilização. Quanto mais
cenários simulados, maior o nível de validação que obtemos do produto, caracterizando maior
nível de qualidade do software desenvolvido.
CUSTOS DA QUALIDADE
RESUMINDO
Neste módulo, destacamos a importância da qualidade no contexto da engenharia de software.
Vimos que a qualidade de software possui duas dimensões: processo e produto.
Nessa dimensão, são aplicados os testes de verificação nos artefatos gerados nas diversas
etapas do processo de software, com o objetivo de impedir a propagação de defeitos nas etapas
posteriores do referido processo.
ATENÇÃO
Agora é com você! Vamos verificar se atingimos o objetivo deste módulo? Você está convidado a
realizar as atividades a seguir.
VERIFICANDO O APRENDIZADO
MÓDULO 2
ATENÇÃO
A equipe de qualidade deve examinar o software sob o ponto de vista do cliente, assertiva
alinhada com a máxima de que “A qualidade é conformidade aos requisitos”, ou seja, o software
deve atender às necessidades do cliente.
PADRÕES
Os padrões, tal como os estabelecidos pela ISO, podem ser adotados pela equipe de Engenharia
de Software ou determinados pelo cliente, cabendo à equipe de qualidade garantir que esses
padrões sejam aplicados e que todas as entregas estejam em conformidade aos mesmos.
REVISÕES E AUDITORIAS
As revisões técnicas permitem a identificação de erros nos diversos artefatos gerados, sendo as
auditorias usualmente aplicadas na verificação da conformidade de processos com os respectivos
procedimentos, tal como a verificação do processo de revisão, a fim de garantir que as revisões
estejam sendo eficazes na descoberta de erros.
TESTES
Os testes de software têm como finalidade a descoberta de erros, cabendo à equipe de qualidade
garantir que os planos de testes sejam implementados e executados na consecução do citado
objetivo básico.
GERENCIAMENTO DE MUDANÇAS
Considerando a alta volatilidade de requisitos e as evoluções tecnológicas constantes, cabe à
equipe de qualidade o estabelecimento de procedimentos relacionados com a gestão de
mudanças.
EDUCAÇÃO
A equipe de qualidade deverá realizar a gestão de programas educacionais a fim de permitir o
aperfeiçoamento da equipe de desenvolvimento.
ADMINISTRAÇÃO DA SEGURANÇA
Inclui, entre outros, a proteção de dados em todos os níveis, a implantação de firewalls e a
garantia de que o software não tenha sido alterado internamente, sem autorização, cabendo à
equipe de qualidade o emprego de processos e tecnologias apropriadas.
PROTEÇÃO
O impacto de defeitos ocultos pode ser catastrófico, tal como no nosso exemplo da aeronave com
500 pessoas, cabendo à equipe de qualidade avaliar o impacto de falhas de software e as
respectivas tratativas em relação à redução de riscos.
ADMINISTRAÇÃO DE RISCOS
A gestão de riscos é responsabilidade da equipe de desenvolvimento, cabendo à equipe de
qualidade garantir que essa gestão seja conduzida de forma apropriada e que planos de
contingência estejam estabelecidos.
PADRÕES DE SOFTWARE
Vamos entender os tipos de padrões de software que podem ser estabelecidos pela equipe de
qualidade:
Inclui padrões de documentação, tal como um cabeçalho de comentário padronizado para uma
definição de uma classe que permitirá instanciar objetos, e padrões de codificação, que definem
como uma linguagem de programação deve ser usada.
Definem os processos que devem ser seguidos durante o desenvolvimento de software, tal como
o processo da engenharia de requisitos, e uma descrição dos documentos que devem ser escritos
ao longo desses processos.
A equipe de qualidade deve gerar, podendo ter como base modelos de padrões nacionais e
internacionais, os padrões necessários para sua organização. Recomenda-se que esse trabalho
inclua o envolvimento da equipe de desenvolvimento, uma sistemática revisão dos padrões e a
disponibilização de ferramentas CASE de apoio aos padrões.
O padrão ISO 9001 não é especificamente voltado para desenvolvimento de software, mas possui
uma interpretação denominada ISO 9000-3 que estabelece princípios gerais que podem ser
aplicados ao software.
Responsabilidade administrativa.
Um sistema de qualidade.
Revisão contratada.
Controle de projeto.
Controle de processos.
Inspeções e testes.
Treinamento.
Manutenção.
Técnicas estatísticas.
ATENÇÃO
Uma organização de software que busque uma certificação ISO 9001 tem de estabelecer políticas
e procedimentos para atender a cada uma das necessidades citadas, bem como ser capaz de
demonstrar que tais políticas e procedimentos estão sendo seguidos. A certificação é um indicador
da seriedade de como uma organização trata a qualidade.
Agora, assista ao vídeo sobre o padrão ISO 9000 e sua aplicabilidade à qualidade de software:
FUNCIONALIDADE
O grau com que o software satisfaz às necessidades declaradas conforme indicado pelos
subatributos adequabilidade, exatidão, interoperabilidade, conformidade e segurança.
CONFIABILIDADE
Quantidade de tempo que o software fica disponível para uso conforme indicado pelos
subatributos maturidade, tolerância a falhas, facilidade de recuperação.
USABILIDADE
Grau de facilidade de utilização do software conforme indicado pelos subatributos facilidade de
compreensão, facilidade de aprendizagem, operabilidade.
EFICIÊNCIA
O grau de otimização do uso, pelo software, dos recursos do sistema conforme indicado pelos
subatributos comportamento em relação ao tempo, comportamento em relação aos recursos.
FACILIDADE DE MANUTENÇÃO
A facilidade com a qual uma correção pode ser realizada no software conforme indicado pelos
subatributos facilidade de análise, facilidade de realização de mudanças, estabilidade,
testabilidade.
PORTABILIDADE
A facilidade com a qual um software pode ser transposto de um ambiente a outro conforme
indicado pelos subatributos adaptabilidade, facilidade de instalação, conformidade, facilidade de
substituição.
GERENCIAMENTO DA QUALIDADE DE
ACORDO COM O PMBOK
Vamos agora entender o gerenciamento da qualidade segundo o PMBOK (2017).
Uma das dez áreas de conhecimento do PMBOK é o Gerenciamento da Qualidade do Projeto que
inclui os processos para incorporação da política de qualidade da organização com relação ao
planejamento, gerenciamento e controle dos requisitos de qualidade do projeto e do produto para
atender às expectativas dos clientes. A referida área possui três processos que serão descritos a
seguir:
PMBOK
Planejar o Gerenciamento
Gerenciar a Qualidade Controlar a Qualidade
da Qualidade
Processo do grupo de
Processo do grupo de
processo planejamento que Processo do grupo de
processo planejamento que
permite identificar os processo execução que
monitora e registra
requisitos e/ou padrões da transforma o plano de
resultados da execução de
qualidade do projeto e suas gerenciamento da
atividades de
entregas, e documentar qualidade em
gerenciamento da
como o projeto demonstrará atividades da qualidade
qualidade para avaliar o
a conformidade com os executáveis que
desempenho e garantir que
requisitos e/ou padrões de incorporam no projeto
as saídas do projeto sejam
qualidade, tendo como as políticas de
completas, corretas e
principal entrega o plano de qualidade da
atendam às expectativas do
gerenciamento da organização.
cliente.
qualidade.
Existem cinco níveis de gerenciamento da qualidade cada vez mais eficaz, conforme a seguir:
1. Deixar que o cliente encontre os defeitos é uma abordagem que pode gerar problemas de
garantia, recalls, retrabalho e outros, sendo em geral uma abordagem mais cara.
2. Detectar e corrigir os defeitos antes que as entregas sejam enviadas para o cliente como parte
do processo de controlar a qualidade, pois esse processo tem custos relacionados, que são
principalmente os custos de avaliação e os custos internos de falhas.
3. Usar a garantia da qualidade para examinar e corrigir o processo em si e não apenas defeitos
especiais.
5. Criar uma cultura na organização que esteja ciente e comprometida com a qualidade em
processos e produtos.
RESUMINDO
Neste módulo, avaliamos a importância da garantia da qualidade no desenvolvimento de software.
Vimos que o processo de garantia de qualidade de software, parte do referido sistema, enfatiza a
adoção de padrões que devem ser aplicados ao processo de desenvolvimento de software, bem
como garantir que esses sejam cumpridos; os padrões devem ser aplicados nos processos e
produtos.
A adoção de um padrão, tal como os especificados pela ISO, permite a geração de manuais de
qualidade da organização, que por sua vez define o processo de qualidade da organização, sendo
o mesmo customizado para cada projeto em função de sua complexidade e processo de
desenvolvimento de software adotado.
Vimos, também, que o PMBOK possui três processos na área de conhecimento e gerenciamento
da qualidade de projetos em diferentes grupos de processos.
Agora é com você! Vamos verificar se atingimos o objetivo deste módulo? Você está convidado a
realizar as atividades a seguir.
VERIFICANDO O APRENDIZADO
MÓDULO 3
PLANEJAMENTO DA QUALIDADE
A equipe de SQA, ou equipe de garantia da qualidade, tem como atribuição auxiliar a equipe de
software a obter um produto final de alta qualidade.
COMENTÁRIO
Essas ações deverão ser realizadas pela equipe de qualidade, sempre que possível
independente, que, entre outras atividades, prepara um plano de qualidade de software para um
projeto. O plano é desenvolvido como parte do planejamento de projeto, sendo revisado por todos
os interessados.
RESPOSTA
Reveja:
Foi publicado pelo IEEE um padrão para planos de qualidade de software. O padrão recomenda
uma estrutura que identifique:
IEEE
De acordo com a Tabela 2, as entradas são convertidas em saídas pela aplicação das técnicas e
ferramentas listadas, cabendo destaque à geração do Plano de Gerenciamento da Qualidade.
Técnicas e
Entradas Saídas
Ferramentas
Plano de gerenciamento
Coleta de dados Métricas da qualidade
do projeto
Atualizações do plano de
Documentos do projeto Análise de dados
gerenciamento do projeto
Fatores ambientais da Atualizações de documentos
Tomada de decisões
empresa do projeto
Planejamento de testes
e inspeções
Reuniões
Assista ao vídeo abaixo e conheça a importância dos diversos tipos de testes na garantia da
qualidade de software.
PLANEJAMENTO DE TESTES E REVISÕES
RELEMBRANDO
Lembramos que teste é um processo sistemático e planejado que tem por finalidade única a
identificação de erros.
Vamos apresentar uma visão prática do planejamento de testes e revisões, item 6 do módulo
“Técnicas e Ferramentas” da Tabela 2, que permite o planejamento da garantia da qualidade do
processo e do produto, segundo Bartié (2002). Podemos observar na Figura 7 que o Processo de
Qualidade de Software proposto está decomposto em fases que se organizam em um formato de
"U".
TESTES DE VERIFICAÇÃO
Os testes de verificação devem concentrar-se em dois aspectos bem distintos, de acordo com a
Figura 8: As atividades de verificação com foco nas documentações são denominadas de
revisões; e as que avaliam as atividades, são chamadas de auditorias.
Figura 8 – Métodos Estruturados de Verificação.
Fonte: O Autor.
As duas situações são consideradas métodos estruturados, pois possuem planejamento, regras
de condução e necessitam de profissionais qualificados para desempenhar essas funções e
acompanhar seu progresso. A revisão é um processo de análise de determinado documento. O
principal objetivo das auditorias de qualidade é avaliar se em determinado projeto a equipe de
desenvolvimento segue o processo de desenvolvimento de software, ou seja, registrando os
defeitos encontrados, produzindo os documentos de análise e projeto etc.
TESTES DE VALIDAÇÃO
A validação da unidade de software tem como objetivo executar o software de forma a exercitar
adequadamente toda a estrutura interna de um componente, como os desvios condicionais, os
laços de processamento etc.
A validação da integração objetiva a manutenção de compatibilidade das novas unidades
construídas, ou modificadas, com os componentes previamente existentes.
A validação do sistema conta com uma infraestrutura mais complexa de hardware, visando a estar
o mais próximo do ambiente real de produção, sendo realizados os testes funcionais, que visam a
verificar se a versão corrente do sistema permite executar processos ou casos de uso completos
do ponto de vista do usuário, de modo a obter os resultados esperados, e os testes não
funcionais, que visam a testar o software em relação às características não funcionais, como
desempenho, segurança, confidencialidade, recuperação de falhas etc.
Como essa é a última oportunidade efetiva de detectar falhas no software, poderemos empregar o
aceite como uma estratégia para reduzir riscos de uma implantação na qual um erro vital não
detectado pode comprometer a imagem da solução como um todo.
TESTE ALPHA
Os usuários finais são convidados a operar o software dentro de um ambiente controlado, sendo
realizado na instalação do desenvolvedor.
TESTE BETA
Os usuários finais são convidados a operar o produto utilizando suas próprias instalações físicas,
ou seja, o software é testado em um ambiente não controlado pelo desenvolvedor.
ACEITE FORMAL
É uma variação do Teste Beta, cabendo aos próprios clientes e usuários determinarem o que
deverá ser testado e validar se os requisitos foram adequadamente implementados.
TESTE DE SISTEMA
VOCÊ SABIA
De acordo com Pressman (2016), os testes de sistema, não inclusos na Figura 7, extrapolam os
limites da engenharia de software, ou seja, consideram o contexto mais amplo da engenharia de
sistemas de computadores.
Após ser validado, o software deve ser combinado com outros elementos do sistema, tais como
hardware, base de dados etc. Vejamos alguns testes sugeridos nesta etapa:
TESTE DE RECUPERAÇÃO
Tem por objetivo avaliar o comportamento do software após a ocorrência de um erro ou de
determinadas condições anormais, tal como simular um saque com defeito no caixa eletrônico ou
simular saque com queda de energia.
TESTE DE SEGURANÇA
Busca detectar as falhas de segurança que podem comprometer o sigilo e a fidelidade das
informações, bem como provocar perdas de dados ou interrupções de processamento, tal como
avaliar se a senha do cartão está sendo requisitada antes e depois da transação ou avaliar se a
senha adicional e randômica está sendo requisitada no início da operação.
TESTE DE DESEMPENHO
Objetiva determinar se o desempenho, nas situações previstas de pico máximo de acesso e
concorrência, está consistente com os requisitos definidos, tal como garantir que a manipulação
com dispositivos físicos no saque não ultrapasse 10 segundos da operação.
TESTE DE DISPONIBILIZAÇÃO
Também chamado de teste de configuração, tem por objetivo executar o software sobre diversas
configurações de softwares e hardwares; a ideia é garantir que a solução tecnológica seja
executada adequadamente sobre os mais variados ambientes de produção previstos nas fases de
levantamento dos requisitos, tal como simular um saque com impressoras dos fornecedores X, Y e
Z.
CONTROLE DE QUALIDADE
Controlar a qualidade é o processo de monitorar e registrar resultados da execução das atividades
de gerenciamento da qualidade verificando se as entregas e o trabalho do projeto cumprem os
requisitos especificados. O processo Controlar a Qualidade é realizado para medir a integridade,
conformidade e adequação para uso de um produto ou serviço antes da aceitação do usuário e
entrega final. Isso é feito medindo todos os passos, atributos e variáveis usados para verificar a
conformidade com ou o cumprimento das especificações definidas no planejamento.
Técnicas e
Entradas Saídas
Ferramentas
Coleta de dados
- Listas de verificação
Plano de gerenciamento
- Folhas de verificação
do projeto Medições de controle da
- Amostragem
- Plano de gerenciamento qualidade
estatística
da qualidade
- Questionário e
pesquisas
Documentos do projeto
Análises de dados
- Registro das lições
- Análises de
apreendidas
desempenho Entregas verificadas
- Métricas da qualidade
- Análise de causa-
- Documentos de teste e
raiz
avaliação
Testes/avaliação de
Entregas Solicitações de mudança
produtos
Representação de
dados
- Diagramas de causa Atualizações do plano de
Dados de desempenho do e efeito gerenciamento do projeto
trabalho - Gráficos de controle - Plano de gerenciamento da
- Histograma qualidade
- Diagramas de
dispersão
Atualizações de documentos
do projeto
- Registro das questões
Fatores ambientais da - Registro das lições
Reuniões
empresa apreendidas
- Registro dos riscos
- Documentos de teste e
Avaliação
Ativos de processos
organizacionais
ATENÇÃO
RESUMINDO
Neste módulo, compreendemos o Planejamento da Qualidade com destaque ao trabalho realizado
pela equipe de garantia da qualidade, que tem como atribuição auxiliar a equipe de software a
obter um produto final de alta qualidade.
O plano de qualidade de software, elaborado pela referida equipe, fornece um roteiro para instituir
a garantia da qualidade de software, servindo como um gabarito para as atividades de garantia da
qualidade de software que serão instituídas para cada projeto de software.
Existem padrões para os referidos planos propostos pelo IEEE, PMBOK, entre outros.
Vimos também os testes de verificação que estão relacionados com a qualidade do processo de
desenvolvimento de software e os testes de validação, relacionados com a qualidade do produto
software.
O processo Controlar a qualidade permite atender à máxima “Não se controla o que não se
mede”, permitindo monitorar e registrar resultados da execução das atividades de gerenciamento
da qualidade, verificando se as entregas e o trabalho do projeto cumprem os requisitos
especificados.
Agora é com você! Vamos verificar se atingimos o objetivo deste módulo? Você está convidado a
realizar as atividades a seguir.
VERIFICANDO O APRENDIZADO
MÓDULO 4
MEDIÇÃO
Um elemento-chave de qualquer processo de engenharia é a medição, pois podemos aplicar a
máxima “Não se controla o que não se mede”.
Vamos entender o conceito de medição por meio dos termos medida, medição e métricas. No
contexto de engenharia de software, uma medida proporciona uma indicação quantitativa da
extensão, quantidade, capacidade ou tamanho de algum atributo de um produto ou processo,
sendo a medição ato de determinar uma medida.
A métrica é uma medida quantitativa do grau com o qual um sistema, componente ou processo
possui determinado atributo.
EXEMPLO
PROCESSO DE MEDIÇÃO
O fluxo abaixo ilustra um processo de medição proposto por Sommerville (2019), que pode ser
parte de um processo de avaliação da qualidade de software, no qual cada componente do
sistema pode ser analisado separadamente usando uma variedade de métricas. Os valores
dessas métricas podem, então, ser comparados com diferentes componentes e, talvez, com
dados de medição históricos, coletados em projetos anteriores. Medições anômalas, que se
desviam significativamente da norma, em geral indicam problemas com a qualidade desses
componentes.
Uma boa prática inclui a manutenção dos dados coletados como um recurso organizacional e
guardar registros históricos de todos os projetos, pois o estabelecimento de um banco de dados
de medição robusto permitirá realizar comparações de qualidade de software em projetos e validar
as relações entre atributos de componentes internos e características de qualidade.
MÉTODO GQM
O método GQM (Goal – Question – Metric) é uma técnica aplicada no planejamento do trabalho
de medição, ou seja, permite a identificação de métricas significativas para qualquer parte do
processo de software. O GQM organiza o planejamento de uma medição de software em etapas
de acordo com as descrições a seguir:
GQM
OBJETIVO
QUESTÕES
MÉTRICAS
OBJETIVO
Um objetivo de medição deve ser específico para uma determinada atividade do processo ou
característica de produto a ser avaliada e de acordo com os requisitos do software, tal como
“Garantir que todos os requisitos funcionais deverão ser testados”.
QUESTÕES
Definição de um conjunto de questões que devem ser respondidas para atingir o objetivo, tal como
“Qual a cobertura dos testes?”; as questões estabelecem uma ponte entre os objetivos planejados
e as métricas.
MÉTRICAS
Deverão ser formuladas em função das respostas às questões elaboradas, tal como “Número de
requisitos testados”.
Conheça as métricas utilizadas no processo de garantia da qualidade de software:
MÉTRICAS
RELEMBRANDO
Como afirmado anteriormente, uma métrica é uma medida quantitativa do grau com o qual um
sistema, componente ou processo possui determinado atributo, tal como o número médio de erros
encontrados por revisão ou o número médio de erros encontrados por teste de unidade.
A Engenharia de Software é uma área de conhecimento quantitativa, portanto, uma métrica de
produto ajuda os engenheiros de software a visualizar o projeto e a construção do software por
meio de atributos específicos e mensuráveis permitindo aos mesmos criar um software de alta
qualidade.
SAIBA MAIS
Uma melhor prática é descrever um conjunto de atributos a serem aplicados às métricas, tais
como: Fácil aprendizado em relação à sua derivação e com uma computação sem demanda de
esforço; deverá satisfazer as ideias do engenheiro sobre o atributo do produto considerado (por
exemplo, uma métrica que mede coesão de módulo deverá crescer em valor na medida em que
aumenta o nível de coesão); sempre produzir resultados que não sejam ambíguos; a computação
matemática da métrica deverá usar medidas que não resultem em combinações incomuns de
unidades, e.g., multiplicar o número de pessoas nas equipes de projeto pelas variáveis da
linguagem de programação no programa resulta em uma mistura duvidosa de unidades que não é
claramente convincente; baseadas no modelo de requisitos, modelo de projeto ou na própria
estrutura do programa; fornecer informações que podem levar a um produto final de melhor
qualidade.
Podemos afirmar que uma métrica de software é uma característica de um sistema de software,
da documentação do sistema ou do processo de desenvolvimento, que pode ser medida
objetivamente. De acordo com Sommerville (2019), as métricas de software podem ser:
Métricas estáticas, cujas medições são feitas a partir de representações do sistema, como o
projeto, o programa ou a documentação.
Métrica Descrição
Comprimento do
Geralmente, quanto maior o tamanho do código de um
código
componente, mais complexo e propenso a erros ele tende a
ser.
Complexidade
Visa a analisar a estrutura do código-fonte.
ciclomática
EXEMPLO
RESUMINDO
Neste módulo, destacamos a importância das medições e métricas para a qualidade do software.
Agora é com você! Vamos verificar se atingimos o objetivo deste módulo? Você está convidado a
realizar as atividades a seguir.
VERIFICANDO O APRENDIZADO
CONCLUSÃO
CONSIDERAÇÕES FINAIS
A qualidade no contexto da Engenharia de Software possui duas dimensões: Processo e produto.
A produção de software com qualidade exige a garantia da qualidade em todas as etapas do
processo de desenvolvimento do software, bem como do produto software.
PODCAST
AVALIAÇÃO DO TEMA:
REFERÊNCIAS
BARTIÉ, A. Garantia da Qualidade de Software. 1. ed. Rio de Janeiro: Elsevier, 2002.
DIJKSTRA, E. W. The Humble Programmer: Turing Award Lecture, Comm. In: ACM, v. 15, n. 10,
p. 859-866, out. 1972.
PRESSMAN, R. S.; MAXIM, B. R. Engenharia de Software. 8. ed. Porto Alegre: AMGH, 2016.
SOMMERVILLE, I. Engenharia de Software. 10. ed. São Paulo: Pearson Prentice Hall, 2019.
EXPLORE+
Para saber mais sobre os assuntos tratados neste tema, leia:
CONTEUDISTA
Alberto Tavares da Silva
CURRÍCULO LATTES