# ISO/IEC 25000

Qualidade de Software é uma área do conhecimento da engenharia de software que pode se referir a:
* As características desejadas de produtos de software.
* A extensão em que um produto de software em particular possui essas características.
* E aos processos, ferramentas e técnicas que são usadas para garantir essas características.
A série de normas ISO/IEC 25000, também conhecida como SQuaRE (Requisitos e Avaliação de Qualidade de Sistemas e Software), tem o objetivo de criar uma estrutura para a avaliação da qualidade de produtos de software.
A ISO/IEC 25000 é o resultado de vários outros padrões de projetos, principalmente da ISO/IEC 9126, que define um modelo de qualidade para avaliação de produtos de software, e ISO/IEC 14598, que define o processo para avaliação de produtos de software.
A qualidade do produto, por sua vez, juntamente com a qualidade do processo, são alguns dos aspectos mais importantes do desenvolvimento de software atualmente. E dentro deste contexto, a ISO / IEC 25000:2014, configura-se como uma das normas mais importantes a respeito de caracterização e medição de qualidade de produto de software. É importante frisar que esta norma não está concluída, mas sim, em plena construção. Ou seja, alguns dos padrões mais importantes desta série já foram publicados, enquanto outros ainda estão em desenvolvimento.
A série de padrões ISO/IEC 25000 consiste em cinco divisões.

## Divisões da ISO / IEC 25000:2014

A série de padrões ISO / IEC 25000, também conhecida como SQuaRE ( Requisitos e Avaliação de Qualidade de Sistemas e Software), tem o objetivo de criar uma estrutura para a avaliação da qualidade de linha de produtos de software.
* ISO/IEC 2500n – Divisão de Gestão da Qualidade
* ISO/IEC 2501n – Divisão de Modelo de Qualidade
* ISO/IEC 2502n – Divisão de Medição de Qualidade
* ISO/IEC 2503n – Divisão de Requisitos de Qualidade
* ISO/IEC 2504n – Divisão de Avaliação da Qualidade

## ISO/IEC 2500n – Divisão de Gestão da Qualidade

Os padrões que formam esta divisão definem todos os modelos, termos e definições comuns que são referidos por todos os outros padrões da série SQuaRE. Atualmente, esta divisão consiste nos seguintes padrões:
* ISO / IEC 25000 - Guia para SQuaRE: Fornece o modelo de arquitetura SQuaRE, terminologia, visão geral de documentos, usuários pretendidos e partes associadas da série, bem como modelos de referência.
* ISO / IEC 25001 - Planejamento e gerenciamento: Fornece requisitos e orientações para uma função de suporte que é responsável pelo gerenciamento da especificação e avaliação de requisitos de produtos de software.

## ISO/IEC 2501n – Divisão de Modelo de Qualidade

O modelo de qualidade é a pedra angular de um sistema de avaliação da qualidade do produto. O modelo de qualidade determina quais características de qualidade serão levadas em consideração ao avaliar as propriedades de um produto de software.
A qualidade de um sistema é o grau em que o sistema satisfaz as necessidades declaradas e implícitas de seus vários stakeholders e, portanto, fornece valor. As necessidades dessas partes interessadas (funcionalidade, desempenho, segurança, manutenibilidade, etc.) são precisamente o que é representado no modelo de qualidade, que categoriza a qualidade do produto em características e sub-características.
Os padrões que formam essa divisão apresentam modelos detalhados de qualidade para sistemas de computador e produtos de software, qualidade em uso e dados. Atualmente, esta divisão consiste nos seguintes padrões:
* ISO / IEC 25010 - Modelos de sistema e qualidade de software: descreve o modelo, consistindo em características e sub-características, para qualidade de produto de software e qualidade de software em uso. O modelo de qualidade do produto definido na ISO / IEC 25010 compreende as oito características de qualidade relacionadas a seguir:
* Adequação Funcional - Essa característica representa o grau em que um produto ou sistema fornece funções que atendem às necessidades declaradas e implícitas quando usadas sob condições especificadas. Essa característica é composta das seguintes sub-características:
** Completude Funcional (Functional Completeness)
** Correção Funcional (Functional Correctness)
** Adequação Funcional (Functional Appropriateness)
* Eficiência de Desempenho - Essa característica representa o desempenho em relação à quantidade de recursos usados nas condições declaradas. Essa característica é composta das seguintes sub-características:
** Comportamento Temporal (Time Behavior)
** Utilização de Recursos (Resource Utilization)
** Capacidade (Capacity)
* Compatibilidade - Grau para o qual um produto, sistema ou componente pode trocar informações com outros produtos, sistemas ou componentes, e / ou executar suas funções necessárias, enquanto compartilha o mesmo ambiente de hardware ou software. Essa característica é composta das seguintes sub-características:
** Co-existência (Co-existence)
** Interoperabilidade (Interoperability)
* Usabilidade - Grau em que um produto ou sistema pode ser usado por usuários específicos para atingir metas especificadas com eficácia, eficiência e satisfação em um contexto específico de uso. Essa característica é composta das seguintes sub-características:
** Reconhecimento de Adequabilidade (Appropriateness Recognizability)
** Aprendizagem (Learnability)
** Operacionalidade (Operability)
** Proteção Contra Erros do Usuário (User Error Protection)
** Estética da Interface do Usuário (User Interface Aesthetics)
** Acessibilidade (Accessibility)
* Confiabilidade - Grau para o qual um sistema, produto ou componente executa funções especificadas sob condições especificadas por um período de tempo especificado. Essa característica é composta das seguintes sub-características:
** Maturidade (Maturity)
** Disponibilidade (Availability)
** Tolerância à Falhas (Fault Tolerance)
** Recuperabilidade (Recoverability)
* Segurança - Grau para o qual um produto ou sistema protege informações e dados para que pessoas ou outros produtos ou sistemas tenham o grau de acesso a dados adequado aos seus tipos e níveis de autorização. Essa característica é composta das seguintes sub-características:
** Confidencialidade (Confidentiality)
** Integridade (Integrity)
** Não Repúdio (Non-repudiation)
** Autenticidade(Authenticity)
** Prestação de Contas(Accountability)
* Manutenção / Manutenibilidade - Essa característica representa o grau de eficácia e eficiência com o qual um produto ou sistema pode ser modificado para melhorá-lo, corrigi-lo ou adaptá-lo a mudanças no ambiente e nos requisitos. Essa característica é composta das seguintes sub-características:
** Modularidade(Modularity)
** Reusabilidade(Reusability)
** Analisabilidade(Analysability)
** Modificabilidade(Modifiability)
** Testabilidade(Testability)
* Portabilidade - Grau de eficácia e eficiência com o qual um sistema, produto ou componente pode ser transferido de um hardware, software ou outro ambiente operacional ou de uso para outro. Essa característica é composta das seguintes sub-características:
** Adaptabilidade(Adaptability)
** Instalabilidade(Installability)
** Replacibilidade(Replaceability)
* ISO / IEC 25012 - Modelo de Qualidade de Dados: define um modelo geral de qualidade de dados para dados retidos em um formato estruturado dentro de um sistema de computador. Ele se concentra na qualidade dos dados como parte de um sistema de computador e define as características de qualidade para dados de destino usados por seres humanos e sistemas.
* Qualidade Inerente de Dados - A qualidade de dados inerente refere-se ao grau em que as características de qualidade dos dados têm o potencial intrínseco de satisfazer as necessidades declaradas e implícitas quando os dados são usados ​​sob condições especificadas. Suas características são compostas por:
** Precisão Sintática;
** Precisão semântica;
** Completude;
** Consistência;
** Credibilidade;
** Atualidade
* Qualidade de Dados Inerente e Dependente do Sistema - A qualidade de dados inerente e dependentes do Sistema é a transição entre dados Inerentes e dependentes que é composto pelas seguintes características:
** Acessibilidade;
** Conformidade;
** Confidencialidade;
** Eficiência;
** Precisão;
** Rastreabilidade;
** Compreensibilidade.
* Qualidade de Dados Dependente do Sistema - A qualidade de dados dependentes do sistema refere-se ao grau em que a qualidade dos dados é alcançada e preservada dentro de um sistema de computador, quando os dados são usados ​​sob condições especificadas. Suas características são compostas por:
** Disponibilidade;
** Portabilidade;
** Recuperabilidade.

## ISO/IEC 2502n – Divisão de Medição de Qualidade

Os padrões que formam essa divisão incluem um modelo de referência de medição de qualidade de produto de software, definições matemáticas de medidas de qualidade e orientação prática para sua aplicação. As medidas apresentadas se aplicam à qualidade e qualidade do produto de software em uso. Atualmente, esta divisão consiste nos seguintes padrões:
* ISO / IEC 25020 - Guia e modelo de referência de medição: Apresenta uma explicação introdutória e um modelo de referência que é comum a elementos de medida de qualidade, medidas de qualidade de produto de software e qualidade em uso. Também fornece orientação aos usuários para selecionar ou desenvolver e aplicar medidas.
* ISO / IEC 25021 - Elementos de medida de qualidade: Define um conjunto de medidas de base e derivadas recomendadas, que devem ser usadas durante todo o ciclo de vida de desenvolvimento de software. O documento descreve um conjunto de medidas que podem ser usadas como uma entrada para a qualidade do produto de software ou a qualidade do software em uso.
* ISO / IEC 25022 - Medição da qualidade em uso: descreve um conjunto de medidas e fornece orientação para medir a qualidade em uso.
* ISO / IEC 25023 - Medição de sistema e qualidade de produto de software: Descreve um conjunto de medidas e fornece orientação para a medição da qualidade do sistema e do software.
* ISO / IEC 25024 - Medição de qualidade de dados: Define medidas de qualidade para medir quantitativamente a qualidade dos dados em termos de características definidas na ISO / IEC 25012.

## ISO/IEC 2503n – Divisão de Requisitos de Qualidade

O padrão que forma essa divisão ajuda a especificar os requisitos de qualidade. Esses requisitos de qualidade podem ser usados no processo de elicitação de requisitos de qualidade para um produto de software a ser desenvolvido ou como entrada para um processo de avaliação. Esta divisão consiste no seguinte padrão:
* ISO / IEC 25030 - Requisitos de qualidade: Fornece requisitos e orientação para o processo usado para desenvolver requisitos de qualidade, bem como requisitos e recomendações para requisitos de qualidade.

## ISO/IEC 2504n – Divisão de Avaliação de Qualidade

Os padrões que formam essa divisão fornecem requisitos, recomendações e diretrizes para avaliação de produtos de software. Esta divisão consiste nos seguintes padrões:
* ISO / IEC 25040 - Modelo e guia de referência de avaliação: contém requisitos gerais para especificação e avaliação de qualidade de software. Fornece uma estrutura para avaliar a qualidade do produto de software e estabelece os requisitos para métodos de medição e avaliação de produtos de software.
* Estabelecer os requisitos de avaliação: O primeiro passo no processo de avaliação é estabelecer os requisitos da avaliação.
** Estabelecer o propósito da avaliação: O objetivo desta tarefa é documentar a finalidade para a qual a organização deseja avaliar a qualidade do produto de software (decidir sobre a aceitação do produto, decidir quando liberar o produto, comparar o produto com produtos da concorrência, selecionar um produto da entre produtos alternativos, etc.).
** Obter os requisitos de qualidade do produto de software: O objetivo desta tarefa é identificar as partes interessadas do produto de software (desenvolvedor, adquirente, avaliador independente, usuário, mantenedor, fornecedor etc.) e especificar os requisitos de qualidade do produto de software usando um modelo de qualidade.
** Identificar as peças do produto a serem incluídas na avaliação: Todas as peças do produto a serem incluídas na avaliação devem ser identificadas e documentadas. O tipo de produto de software a ser avaliado (por exemplo, especificação de requisitos, diagramas de projeto e documentação de teste) depende do estágio do ciclo de vida e do propósito da avaliação.
** Definir o rigor da avaliação: A restringência da avaliação deve ser definida para fornecer confiança na qualidade do produto de software de acordo com o uso pretendido e o propósito da avaliação. O rigor da avaliação deve estabelecer níveis de avaliação esperados que definam as técnicas de avaliação a serem aplicadas e os resultados da avaliação a serem alcançados.
* Especifique a avaliação: Nesta atividade, os módulos de avaliação e os critérios de decisão para medidas de qualidade são especificados.
** Selecionar medidas de qualidade (módulos de avaliação): Nesta tarefa, o avaliador deve selecionar medidas de qualidade (módulos de avaliação) para cobrir todos os requisitos de avaliação da qualidade do software. Os procedimentos de medição devem medir a característica de qualidade do software (ou subcaracterística) que eles afirmam estar medindo com precisão suficiente para permitir que os critérios sejam definidos e as comparações sejam feitas. Padrões na divisão ISO / IEC 2502n podem ser helphulp nesta tarefa.
** Definir critérios de decisão para medidas de qualidade: Os critérios de decisão devem ser definidos para as medidas individuais selecionadas. Os critérios de decisão são limites numéricos ou metas usadas para determinar a necessidade de ação ou investigação adicional, ou para descrever o nível de confiança em um dado resultado. Os usuários podem usar benchmarks, limites de controle estatístico, dados históricos, requisitos do cliente ou outras técnicas para definir critérios de decisão.
** Definir critérios de decisão para avaliação: O avaliador deve preparar um procedimento para uma maior sumarização, com critérios separados para diferentes características de qualidade, cada uma das quais pode ser em termos de subcaracterísticas e medidas de qualidade. Os resultados da compactação devem ser usados ​​como base para a avaliação da qualidade do produto de software.
* Projetar a avaliação: Nesta atividade, o plano de avaliação é definido.
** Planejar atividades de avaliação: As atividades de avaliação da qualidade do produto de software identificadas devem ser programadas, levando em consideração a disponibilidade de recursos, como pessoal, ferramentas de software e computadores. O plano de avaliação deve também incluir o propósito da avaliação, o orçamento, métodos e ferramentas de avaliação, padrões adotados, etc. O plano de avaliação deve ser revisado à medida que as atividades de avaliação evoluírem, fornecendo informações adicionais que permitam que o plano seja ajustado ou detalhado.
* Executar a avaliação: Nesta atividade a avaliação é executada, obtendo medidas para as medidas de qualidade e aplicando os critérios de decisão.
** Faça medições: As medidas de qualidade do produto de software selecionadas devem ser aplicadas ao produto de software e seus componentes, de acordo com o plano de avaliação, resultando em valores nas escalas de medição.
** Aplicar critérios de decisão para medidas de qualidade: Os critérios de decisão para as medidas de qualidade de produto de software devem ser aplicados aos valores medidos.
** Aplicar critérios de decisão para avaliação: O conjunto de critérios de decisão deve ser resumido em subcaracterísticas e características, produzindo os resultados da avaliação como uma declaração de até que ponto o produto de software atende aos requisitos de qualidade.
* Concluir a avaliação: Nessa atividade, a avaliação da qualidade do produto de software é concluída, revisando os resultados da avaliação e criando o relatório de avaliação.
** Rever o resultado da avaliação: O avaliador e o solicitante devem realizar uma análise conjunta dos resultados da avaliação.
** Criar o relatório de avaliação: Uma vez revisados ​​os resultados, é criado o relatório de avaliação, incluindo os requisitos da avaliação, os resultados das medições e análises realizadas, quaisquer limitações ou restrições, os avaliadores e suas qualificações, etc.
** Revisar a avaliação da qualidade e fornecer feedback para a organização: O avaliador deve rever os resultados da avaliação e a validade do processo de avaliação, indicadores e medidas aplicadas. O feedback da revisão deve ser usado para melhorar o processo de avaliação e as técnicas de avaliação (módulos de avaliação).
** Realizar disposição de dados de avaliação: Quando a avaliação estiver concluída, os dados e itens de avaliação devem ser descartados de acordo com os requisitos do solicitante, devolvendo, arquivando ou destruindo-os de forma segura, dependendo do tipo de dados.

## Domínios de Aplicação Específicos - ISO/IEC 25050 a ISO/IEC 25099

A extensão SQuaRE (ISO / IEC 25050 a ISO / IEC 25099) é designada para conter padrões internacionais de qualidade de produto ou de software e / ou relatórios técnicos que abordam domínios de aplicação específicos ou que podem ser usados para complementar um ou mais Padrões Internacionais SQuaRE.