Desenvolvimento

Ξ Deixe um comentário

Métricas de qualidade de software

publicado por Vanessa Gomes

Figura - Métricas de qualidade de softwareEm 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]

Autor

Atua profissionalmente como Analista de Desenvolvimento e Analista de Teste em Qualidade. - Certificação em ITIL V3 Foundation - CTFL - Certified Tester Foundation Level - SFPC - Scrum Foundation Professional Certificate - DEPC - Devops Essencial Professional Certificate - Linguagens: PHP, SQL, HTML, Java,.NET, Groovy; - Automação de Testes com JUnit, Selenium e Cucumber - Big Data Foundation - Scrum Master (fundamentos),

Vanessa Gomes

Comentários

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes