Notícias

Métricas de qualidade de software

publicado: 20/03/2015 12h44, última modificação: 31/10/2022 16h19
Em software, as medições podem ser utilizadas de maneira semelhante...
shutterstock_300x200.jpg

Em software, as medições podem ser utilizadas de maneira semelhante. Antes mesmo de o produto existir, determina-se durante a análise de requisitos como deverá funcionar. (KOSCIANSKI, André, SOARES, Michel dos Santos, 2007)

De acordo com (KOSCIANSKI, André, SOARES, Michel dos Santos, 2007), pode-se, por exemplo, estabelecer qual o tempo máximo que o programa poderá demorar para fornecer uma certa resposta. Com base nessa informação, os projetistas e programadores deverão definir os algoritmos mais adequados, a forma de acesso e indexação de arquivos, requisitos de hardware e outros fatores que influenciam o resultado.

Segundo (Boehm,Brown e Lipow, 1976) definem uma árvore de atributos de qualidade de software bem definidos e bem diferenciados (figura 1), onde as direções das setas indicam implicações lógicas. Por exemplo, um programa que é fácil de ser mantido deve também ser facilmente testado, entendido e modificado.

Figura 1: Árvore de Características de Qualidade de Software (Boehm,Brown e Lipow, 1976)

Figura 1: Árvore de Características de Qualidade de Software (Boehm,Brown e Lipow, 1976)

A estrutura de mais alto nível reflete o uso de avaliação da qualidade de software. De acordo com (Boehm,Brown e Lipow, 1976), destacam a aquisição do pacote de software, o qual deve ter as seguintes características de nível médio na estrutura hierárquica: portabilidade, confiabilidade, eficiência, engenharia humana e facilidades de teste, uso e modificação.

Conforme (Davis, A. et al.,1993) também propõem uma lista de características que podem ser usadas para avaliar a qualidade do modelo de análise e da correspondente especificação de requisitos como: falta de ambiguidade, completude, corretude, facilidade de entendimento, verificabilidade, consistência interna e externa, concisão, facilidade de rastreamento, facilidade de modificação, precisão e reusabilidade.

 

  • As Características de qualidade segundo a norma ISO 9126

Figura 2: Modelo de qualidade da ISSO/IEC 9126. A subcaracterística conformidade não está ilustrada. (KOSCIANSKI, André, SOARES, Michel dos Santos, 2007)

Figura 2: Modelo de qualidade da ISSO/IEC 9126. A subcaracterística conformidade não está ilustrada. (KOSCIANSKI, André, SOARES, Michel dos Santos, 2007)

 

Funcionalidade 

A funcionalidade diz respeito àquilo que o software faz quando solicitado pelo usuário, como, por exemplo: imprimir um relatório, apresentar dados na tela ou registrar uma informação em uma base de dados. (KOSCIANSKI, André, SOARES, Michel dos Santos, 2007)

A característica se refere à capacidade para o cumprimento de tarefas, em outros termos, se uma dada função foi implementada ou não no programa. A maneira como essa função é executada é algo que pode ser avaliado em função de outras características. (KOSCIANSKI, André, SOARES, Michel dos Santos, 2007)

Pode-se dizer que esta característica é idêntica aos “requisitos funcionais” definidas por (Sommerville, 2003): “Os requisitos  funcionais para um sistema descrevem a funcionalidade ou os serviços que se espera que o sistema forneça.”

As sub características da Funcionalidade de acordo com (ISSO/IEC 9126-1):

  • Adequação: é a capacidade do software de fornecer um grupo de funcionalidades adequadas para tarefas especificas e para os objetivos dos usuários.
  • Acurácia: é a capacidade do software fornecer resultados corretos e acordados com os necessário grau de precisão.
  • Interoperabilidade: é a capacidade do software de interagir com um ou mais sistemas específicos.
  • Segurança: é a capacidade do software de proteger informações e dados, de tal modo que pessoas ou sistema não autorizados não consigam acessá-las. Por outro lado, aqueles que estão autorizados poderão acessar essas informações ou dados.
  • Conformidade com a funcionalidade: é a capacidade do software e aderir aos padrões, convenções, regras, regulamentações e leis relacionadas á funcionalidade.


Confiabilidade

Habitualmente, diz que um produto é confiável quando não falha. E em software, sabemos que a ocorrência de falhas é sempre uma possibilidade. (KOSCIANSKI, André, SOARES, Michel dos Santos, 2007)

Em primeiro lugar, como foi feito com a característica “funcionalidade”, aqui também é preciso definir um escopo. De acordo com a ISSO/IEC 9126, a confiabilidade de um programa se traduz com a capacidade de manter um certo nível de desempenho quando operando em um certo contexto de uso.

Segundo (Sommerville, 2003) classifica a confiabilidade entre as subcaracterísticas de confiabilidade por se tratarem de operações que o software é programado para realizar. Assim temos a tolerância a falhas e a recuperabilidade, ou seja, recuperação de falhas.

As sub características da Confiabilidade de acordo com (ISSO/IEC 9126-1):

  • Maturidade: é a capacidade do software de evitar falhas decorrentes de falhas de software.
  • Tolerância a falhas: é a capacidade do software de manter um nível específico de performance em caso de falhas ou de violações em sua interface específica.
  • Recuperabilidade: é a capacidade do software de restabelecer um nível específico de performance em caso de falhas ou violações em sua interface específica.
  • Conformidade com a funci0nalidade: é a capacidade do software de aderir a padrões, regras, regulamentações e leis relacionadas à conformidade.


Usabilidade

Usabilidade representa basicamente o quão é fácil usar o produto. (Qualidade de software) esta é provavelmente a característica mais difícil de tratar, tanto durante a definição de requisitos quanto durante os estágios posteriores do ciclo de vida, na verificação e validação do produto. (KOSCIANSKI, André, SOARES, Michel dos Santos, 2007) 

As sub características da Usabilidade de acordo com (ISSO/IEC 9126-1): 

  • Inteligibilidade: é a capacidade do software de permitir ao usuário entender se o programa é amigável e como ele pode ser usado para tarefas particulares e outras condições de uso. 
  • Apreensibilidade: é a capacidade do software de permitir ao usuário aprender com sua aplicação. 
  • Operabilidade: é a capacidade do software de permitir o usuário operá-lo e controlá-lo. 
  • Atratividade: é a capacidade do software de ser atrativo para o usuário. 
  • Conformidade com a usabilidade: é a capacidade do software de aderir aos padrões, convenções, regras, regulamentações e leis relacionadas à usabilidade. 


Eficiência

De acordo com a ISSO/IEC 9126, eficiência é o tempo de execução e os recursos envolvidos são compatíveis com o nível de desempenho do software.

A velocidade de operação de um software pode ser afetada por inúmeros fatores: velocidade da CPU, quantidade de memória cache e memória RAM, desempenho de disco rígido, volume de tráfego de rede, interação com outros softwares e com o sistema operacional, configurações deste último etc. (KOSCIANSKI, André, SOARES, Michel dos Santos, 2007)

As sub características da Eficiência de acordo com (ISSO/IEC 9126-1): 

  • Comportamento em relação ao tempo: é a capacidade do software de fornecer tempos apropriados de resposta e de processamento, relativos à soma de recursos e sob condições preestabelecidas.   
  • Comportamento em relação aos recursos: é a capacidade do software de utilizar a soma e os tipos de recurso quando executar suas funcionalidades sob condições preestabelecidas. 
  • Conformidade com a eficiência: é a capacidade do software de aderir aos padrões, convenções, regras, regulamentações e leis relacionadas á eficiência. 


Manutenibilidade 

De acordo com a ISSO/IEC 9126, é a capacidade do software ser mantido.

A característica de manutenibilidade esta relacionada à facilidade de modificação de um produto de software. (KOSCIANSKI, André, SOARES, Michel dos Santos, 2007)

Segundo (KOSCIANSKI, André, SOARES, Michel dos Santos, 2007), esta característica é de interesse especialmente para desenvolvedores e não deve ser confundida com a possibilidade de configurar o software. Uma modificação consiste, por exemplo, em uma correção do produto ou da adaptação a mudanças de requisitos, como mudanças de legislação. 

As sub características da Manutenibilidade  de acordo com (ISSO/IEC 9126-1): 

  • Analisabilidade: é a capacidade do software de passar por diagnósticos em busca de deficiências ou origens de falhas, ou para a identificação de pares que devem ser alteradas.
  • Modificabilidade: é a capacidade do software de permitir que uma alteração específica seja implementada.
  • Estabilidade: é a capacidade do software de evitar efeitos inesperados em decorrência de alterações. 
  • Testabilidade: é a capacidade do software de ser testado após alterações. 
  • Conformidade com a manutenibilidade: é a capacidade do software de aderir aos padrões, convenções, regras, regulamentações e leis relacionadas à manutenibilidade. 


Portabilidade 

De acordo com a ISSO/IEC 9126, é a capacidade do software ser transferido de um ambiente para outro. 

A palavra “portabilidade” é utilizada geralmente para indicar a possibilidade de um código-fonte ser utilizado em diferentes plataformas de execução. Na norma 9126, a definição foi estendida para abranger a idéia de portar aplicações entre organizações diferentes. Em tese, supõe-se que um programa possa, então, ser elaborado para operar em ambientes com características diferentes. (KOSCIANSKI, André, SOARES, Michel dos Santos, 2007) 

As sub características da Portabilidade de acordo com (ISSO/IEC 9126-1): 

  • Adaptabilidade: é a capacidade do software de ser adaptado a ambientes diferentes sem a aplicação de ações ou outros meios que não aqueles previamente estabelecidos. 
  • Facilidade de instalação: é a capacidade do software de ser instalado num ambiente especifico.
  • Coexistência: é a capacidade do software de coexistir com outro software no mesmo ambiente e compartilhar recursos.
  • Capacidade para substituir: é a capacidade do software de substituir um outro software no mesmo ambiente para o mesmo propósito. 
  • Conformidade com a portabilidade: é a capacidade do software de aderir aos padrões, convenções, regras, regulamentações e leis relacionadas à portabilidade.

[Crédito da Imagem: Qualidade de Software – ShutterStock]


Fonte: publicado por Vanessa Gomes em http://www.tiespecialistas.com.br/