Skip to content

ISO 25010

Rildosan edited this page Jun 24, 2022 · 21 revisions

Qualidade de Produto de Software


A ISO/IEC 25010 é uma norma disponibilizada em 2011 para Qualidade de Produto de Software. Substituiu a norma ISO/IEC 9126, da qual adicionou às características principais "segurança" e "compatibilidade".
A ISO 25010 define modelos de avaliação da qualidade de software e sistemas, a norma apresenta características de qualidade que todos os softwares devem ter, de forma a alcançar um nível muito alto de qualidade no software que será entregue.

A ISO 25010 ajuda a garantir a qualidade de produto de software.

Conteúdo:
O que é ISO 25010?
Visão geral da norma ISO 25010
Quais são as características de qualidade do produto ISO 25010?
Qual é a diferença entre ISO 25010 e ISO 9126?
Por que a qualidade do software é importante?
Usando a Análise de Código Estático para dar suporte à ISO 25010

O que é ISO 25010?
A ISO 25010, intitulada “Sistemas e engenharia de software – Requisitos e avaliação de qualidade de sistemas e software (SQuaRE) – Modelos de qualidade de sistema e software”, é um padrão de qualidade de software. Descreve os modelos, consistindo em características e subcaracterísticas, tanto para a qualidade do produto de software, quanto para a qualidade do software em uso, juntamente com orientações práticas sobre o uso dos modelos de qualidade.

Visão geral da norma ISO 25010

A ISO 25010 descreve dois modelos de qualidade:

  • Primeiro: O modelo de qualidade em uso é composto por cinco características (algumas das quais são subdivididas em subcaracterísticas) que se relacionam com o resultado da interação quando um produto é usado em um determinado contexto de uso.
  • Segundo: Um modelo de qualidade de produto composto por oito características (que são subdivididas em subcaracterísticas) que se relacionam com propriedades estáticas do software e propriedades dinâmicas do sistema de computador.
    As características e subcaracterísticas fornecem terminologia consistente para especificar, medir e avaliar a qualidade do sistema e do produto de software. Eles também fornecem um conjunto de características de qualidade com as quais os requisitos de qualidade declarados podem ser comparados quanto à completude.


  • Abaixo uma visão geral da qualidade do código da perspectiva da “Qualidade do Produto”.

    Quais são as características de qualidade do produto ISO 25010?
    A ISO 25010 é composta por oito características de qualidade do produto e 31 subcaracterísticas:
    1. Adequação Funcional
    2. Confiabilidade
    3. Eficiência de Desempenho
    4. Usabilidade
    5. Segurança
    6. Compatibilidade
    7. Manutenibilidade
    8. Portabilidade

    Aqui está uma visão geral de cada característica e subcaracterística.

    Adequação Funcional
    Refere-se a quão bem um produto ou sistema é capaz de fornecer funções que atendem às necessidades declaradas e implícitas.
    • Completude Funcional: Refere-se ao conjunto de funções que abrange todas as tarefas especificadas e objetivos do usuário.
    • Correção Funcional: Refere-se a quão bem um produto ou sistema fornece os resultados corretos com o grau de precisão necessário.
    • Adequação Funcional: Refere-se a quão bem as funções são capazes de realizar tarefas e objetivos especificados.

    Confiabilidade
    Refere-se a quão bem um sistema, produto ou componente executa funções especificadas sob condições especificadas.
    • Maturidade: Refere-se a quão bem um sistema, produto ou componente é capaz de atender às suas necessidades de confiabilidade.
    • Disponibilidade: Refere-se a se um sistema, produto ou componente está operacional e acessível.
    • Tolerância a falhas: Refere-se a quão bem um sistema, produto ou componente opera apesar de falhas de hardware e/ou software.
    • Recuperação: Refere-se a quão bem um produto ou sistema pode recuperar dados em caso de interrupção ou falha.

    Eficiência de Desempenho
    Refere-se ao desempenho relacionado à quantidade de recursos utilizados.
    • Comportamento do tempo: Refere-se aos tempos de resposta e processamento e taxas de rendimento de um produto ou sistema enquanto ele está executando suas funções.
    • Utilização de recursos: Refere-se às quantidades e tipos de recursos usados por um produto ou sistema durante a execução de suas funções.
    • Capacidade: Refere-se aos limites máximos de um parâmetro do produto ou sistema.

    Usabilidade
    Refere-se a quão bem um produto ou sistema pode ser usado para atingir objetivos especificados de forma eficaz, eficiente e satisfatória.
    • Adequação Reconhecimento: Refere-se a quão bem você pode reconhecer se um produto ou sistema é apropriado para suas necessidades.
    • Aprendizagem: Refere-se a quão fácil é aprender a usar um produto ou sistema.
    • Operabilidade: Refere-se a se um produto ou sistema possui atributos que facilitam a operação e o controle.
    • Proteção contra erros do usuário: Refere-se a quão bem um sistema protege os usuários contra erros.
    • Estética da interface do usuário: Refere-se a se a interface do usuário é agradável.
    • Acessibilidade: Refere-se a quão bem um produto ou sistema pode ser usado com a mais ampla gama de características e capacidades.

    Segurança [1]
    Refere-se a quão bem um produto ou sistema protege informações e dados contra vulnerabilidades de segurança.
    • Confidencialidade: Refere-se a quão bem um produto ou sistema é capaz de garantir que os dados sejam acessíveis apenas para aqueles que têm acesso autorizado.
    • Integridade: Refere-se a quão bem um sistema, produto ou componente é capaz de impedir o acesso não autorizado e a modificação de programas de computador e/ou dados.
    • Não repúdio: Refere-se a quão bem as ações ou eventos podem ser comprovados como tendo ocorrido.
    • Responsabilidade: Refere-se às ações de um usuário não autorizado que pode ser rastreado até eles.
    • Autenticidade: Refere-se a quão bem a identidade de um assunto ou recurso pode ser provada.

    Compatibilidade
    Refere-se a quão bem um produto, sistema ou componente pode trocar informações, bem como executar suas funções necessárias enquanto compartilha o mesmo ambiente de hardware ou software.
    • Coexistência: Refere-se a quão bem um produto pode desempenhar suas funções requeridas de forma eficiente enquanto compartilha um ambiente e recursos comuns com os produtos, sem impactar negativamente qualquer outro produto.
    • Interoperabilidade: Refere-se a quão bem dois ou mais sistemas, produtos ou componentes são capazes de trocar informações e usar essas informações.

    Manutenibilidade
    Refere-se a quão bem um produto ou sistema pode ser modificado para melhorar, corrigir ou adaptar-se às mudanças no ambiente, bem como aos requisitos.
    • Modularidade: Refere-se a se os componentes de um sistema ou programa podem ser alterados com impacto mínimo nos outros componentes.
    • Reutilização: Refere-se a quão bem um ativo pode ser usado em mais de um sistema.
    • Analisabilidade: Refere-se à eficácia de uma avaliação de impacto sobre as mudanças pretendidas. Além disso, também se refere ao diagnóstico de deficiências ou causas de falhas, ou à identificação de peças a serem modificadas.
    • Modificabilidade: Refere-se a quão bem um produto ou sistema pode ser modificado sem introduzir defeitos ou degradar a qualidade do produto existente.
    • Testabilidade: Refere-se à eficácia dos critérios de teste para um sistema, produto ou componente. Além disso, também se refere aos testes que podem ser realizados para determinar se os critérios de teste foram atendidos.

    Portabilidade
    Refere-se a quão bem um sistema, produto ou componente pode ser transferido de um ambiente para outro.
    • Adaptabilidade: Refere-se a quão bem um produto ou sistema pode ser adaptado para hardware, software ou outros ambientes de uso diferentes ou em evolução.
    • Instalação: Refere-se ao sucesso com que um produto ou sistema pode ser instalado e/ou desinstalado.
    • Substituibilidade: Refere-se a quão bem um produto pode substituir outro produto comparável.

    Qual é a diferença entre ISO 25010 e ISO 9126?
    A ISO 25010, que foi publicada em 2011, substituiu a ISO 9126 publicada em 2001.
    A principal diferença entre os dois está em como eles categorizam e definem os requisitos de qualidade de software não funcionais.
    A ISO 25010 adicionou duas características de qualidade de produto adicionais às seis especificadas na ISO 9126 — adicionando segurança e compatibilidade.

    Por que a qualidade do software é importante?
    A qualidade do software reflete o quão bem o software está em conformidade com o projeto, mas também como ele atende aos requisitos não funcionais, como segurança ou manutenibilidade, conforme descrito pelas características da ISO 25010. A medição da qualidade do software quantifica até que ponto o software avalia em relação a cada uma das características.
    Dentro das características, o software pode ser avaliado quanto a:
    • Pode ser testado.
    • É fácil de entender e seguir.
    • É fácil de editar e atualizar sem introduzir novos erros.

    Use a análise de código estático para dar suporte à ISO 25010
    A análise de código estático desempenha um papel em qualquer modelo de qualidade de software bem definido, especialmente ao considerar as características de segurança e manutenção.
    Segurança: Definida como a proteção de itens do sistema contra acesso, uso, modificação, destruição ou divulgação acidental ou malicioso. A análise de código estático pode ajudar a identificar defeitos para evitar esses tipos de ataques mal-intencionados.
    Característica de manutenção:
    As métricas podem ser calculadas para verificar a qualidade contínua do produto:
    • Analisabilidade: é definida como o grau em que o produto de software pode ser diagnosticado para deficiências ou causas de falhas no software. A análise estática identifica deficiências.
    • Testabilidade: o uso de análise estática antes do teste reduz o número de casos de teste necessários
    O uso de padrões de codificação pode descobrir problemas de segurança e deficiências gerais. Usando uma ferramenta de análise de código estático que pode verificar a conformidade com os padrões de codificação e fornecer evidências de que a conformidade deve fazer parte do processo de qualidade.
    Ao usar um analisador de código estático você pode garantir a qualidade do software ao:
    • Aplicação de padrões de codificação e detecção de violações de regras.
    • Detectando problemas de conformidade no início do desenvolvimento.
    • Acelerando as revisões de código e os esforços de teste manual.
    • Relatórios sobre a conformidade ao longo do tempo e entre as versões do produto.


    Saiba mais sobre:
    [1]📕 Padrões de codificação segura: CERT C
    Clone this wiki locally