Fórum Melhoria do Produto de Software Brasileiro Modelo SQuaRE para especificação e avaliação da qualidade de produto de software 14 Novembro/2004 Danilo Scalet ([email protected]) CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Sumário • Especificação de requisitos e avaliação da qualidade de produto de software • As normas existentes e o novo modelo SQuaRE • Modelo de qualidade • Medidas da qualidade de produto de software •Desdobrando requisitos de qualidade •Processo de avaliação da qualidade de produto de software • A evolução do modelo SQuaRE CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Qualidade no Ciclo de Vida processo efeitos do produto de software Contextos Influenciam de uso produto de software Influenciam Influencia Qualidade do processo Atributos de qualidade interna Depende de Medidas de processo Atributos de qualidade externa Dependem de Medidas internas CELEPAR – Companhia de Informática do Paraná Atributos de qualidade em uso Dependem de Medidas externas Medidas de qualidade em uso Modelo SQuaRE Relacionamento entre as séries 9126 e 14598 Recursos e Ambiente Suporte à avaliação Processo de Avaliação Processo de avaliação Produto de Software Métricas internas Métricas Externas Efeitos do Produto de Software Métricas de qualidade em uso 14598-1 14598-2 14598-6 14598-3 14598-4 14598-5 9126-1 9126-3 CELEPAR – Companhia de Informática do Paraná 9126-2 9126-4 Modelo SQuaRE A Série 9126 9126-1 Quality Model 9126-2 9126-3 External Metrics Internal Metrics CELEPAR – Companhia de Informática do Paraná 9126-4 Quality in use Metrics Modelo SQuaRE A Série 14598 14598-1 Visão Geral 14598-2 Planejamento e gestão 14598-3 Processo para desenvolvedores 14598-4 Processo para adquirentes 14598-5 Processo para avaliadores 14598-6 Documentação de módulos de avaliação CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE SQuaRE Software product Quality Requirements and Evaluation • Grupo WG6 do ISO/IEC JTC1 SC7 • Nova geração das séries ISO/IEC 9126 e 14598 • Documento inicial em 1999 na reunião de Kanazawa • Aprovado pelo SC7 em 2000 na reunião de Madri CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE SQuaRE - Histórico • ISO/IEC 9126:1991 --> NBR 13596:1994 Avaliação de produto de software - Características de qualidade e diretrizes para o seu uso • Série 14598:1998-2001--> NBR ISO/IEC 14598 Avaliação de produto de Software •Série 9126: 2001-2004 --> NBR ISO/IEC 9126 Qualidade de produto de software CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE A nova arquitetura SQuaRE 2501n Quality Quality Model Model Division Division 2500n 2503n Quality Quality Requirements Requirement Division Division Quality Management Division Guide to the SQuaRE Planning and Management 2504n Quality Quality Evaluation Evaluation Division Division 2502n Quality Measurement Quality Metrics Division Division CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE O modelo de referência SQuaRE Business system Information system Target of Process Software product Internal software quality External software quality Qualityin use Process Requirements Specification Evaluation 25030 Execution 25022 25023 25024 25041 25042 25043 25044 25021 Particular Guidance 25001 25020 25040 25010 General Guidance 25000 CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE 25001 MODELO DE QUALIDADE (ISO/IEC 25010) Definição de modelo de qualidade: O conjunto de características e os relacionamentos entre elas, que fornecem a base para a especificação dos requisitos de qualidade e para a avaliação da qualidade. Modelo de qualidade é um produto do desdobramento da qualidade CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Estrutura Hierárquica de um Modelo de Qualidade Característica Subcaracterística Atributo Atributo Subcaracterística Atributo CELEPAR – Companhia de Informática do Paraná Subcaracterística Atributo Atributo Modelo SQuaRE Atributos externos e internos x x x x x x x x x x x x x x x x x x x x x x x x x x x atributo x x x x x subcaracterística Atributos internos (atributos do software) característica CELEPAR – Companhia de Informática do Paraná Atributos externos (atributos do sistema) Modelo SQuaRE MODELO DE QUALIDADE Qualidade externa e qualidade interna Funcionalidade Confiabilidade Usabilidade Qualidade externa e Qualidade interna Eficiência Manutenibilidade Portabilidade CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE MODELO DE QUALIDADE Funcionalidade Adequação Acurácia Interoperabilidade Seg. acesso Conformidade Confiabilidade Maturidade Toler. Falhas Recuperabilidade Conformidade Usabilidade Inteligibilidade Apreensibilidade Operabilidade Atratividade Conformidade Eficiência Comport. relação ao tempo Comport. relação aos recursos Conformidade Manutenibilidade Analisabilidade Modificabilidade Estabilidade Testabilidade Conformidade Portabilidade Adaptabilidade Cap. p/ ser Instalado Co-existência CELEPAR – Companhia de Informática do Paraná Cap. p/ substituir Conformidade Modelo SQuaRE MODELO DE QUALIDADE Qualidade em uso Eficácia Produtividade Qualidade em uso Segurança Satisfação CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições Qualidade de software: capacidade de um produto de software satisfazer necessidades explícitas e implicitas quando utilizado sob condições especificadas (ISO/IEC 25000). O que significa “necessidades”? CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições • Necessidades: É a expectativa quanto aos efeitos de um produto. • Um usuário não deseja um produto e sim os efeitos do uso do produto, que caracterizam suas necessidades. • É difícil que as reais necessidades sejam identificadas pelo usuário ou por um desenvolvedor. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Qualidade no ciclo de vida do software Requirements Quality In Use Measures used for Needs Quality In Use Requirements Products Quality in Use Validation External Quality Measures used for External Quality Requirements Internal Quality Measures used for Internal Quality Requirements External Quality Verification and Validation Internal Quality Verification Implementation CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Construindo medidas de qualidade para produto de software (ISO/IEC 25020) Software Product Quality Quality Characteristics Quality Measures Measurement Function Quality Subcharacteristics CELEPAR – Companhia de Informática do Paraná Measurement Primitives Modelo SQuaRE SQuaRE Construindo medidas primitivas (ISO/IEC 25020) Measurement Primitives Base Measure or Derived Measure Measurement Function Base Measure Base Measure Measurement Method Measurement Method Measurement Method Attributes for Quality Measure Attributes for Quality Measure Attributes for Quality Measure CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Medidas de qualidade de produto de software (ISO/IEC 25021, 25022, 25023 e 25024) • Objetivos de medidas de produto de software • definir requisitos de qualidade • medir e melhorar a qualidade de produtos intermediários • prever e controlar a qualidade do produto • tomar decisões quanto a liberação ou aceitação de produto •Tipos de medidas de produto de software • medidas de qualidade interna • medidas de qualidade externa • medidas de qualidade em uso CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE SQuaRE Escolhendo medidas de produto de software Significância Custo e Complexidade Repetibilidade Reproducibilidade Validade Objetividade Imparcialidade CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Exemplos de medidas funcionalidade adequação Medida Externa Nome da medida: completitude das funções Propósito: determinar a taxa de implementação das funções definidas na especificação de requisitos Fórmula: 1 - (# funções faltantes / # funções especificadas) Interpretação: 0 x 1; quanto mais próximo de 1, melhor Entradas: relatórios de avaliação, esp. requisitos CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Exemplos de medidas confiabilidade tolerância a falhas Medida Externa Nome da medida: capacidade de evitar falhas Propósito: determinar controle de ocorrência de falhas Fórmula: (# falhas evitadas / # casos de teste) Interpretação: 0 x 1; quanto mais próximo de 1, melhor Entradas: relatórios de teste e de operação CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Exemplos de medidas confiabilidade tolerância a falhas Medida Interna Nome da medida: capacidade de evitar falhas Propósito: determinar número de falhas previstas e evitadas no código Fórmula: (# falhas previstas no projeto / # falhas possíveis) Interpretação: 0 x 1; quanto mais próximo de 1, melhor Entradas: relatório revisão, especificação de requisitos CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Exemplos de medidas usabilidade apreensibilidade (learnability) Medida Interna Nome da medida: completitude de sistema de ajuda e documentação Propósito: determinar proporção de funções documentadas ao usuário Fórmula: (# funções documentadas / # funções) Interpretação: 0 x 1; quanto mais próximo de 1, melhor Entradas: Especificação requisitos, projeto, relatório revisão CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Exemplos de medidas usabilidade apreensibilidade (learnability) Medida Externa Nome da medida: eficácia de sistema de ajuda e documentação Propósito: determinar proporção de documentação efetiva ao usuário Fórmula: (# funções executadas com sucesso (*1) / # funções) Interpretação: 0 x 1; quanto mais próximo de 1, melhor Entradas: relatório de operação *1 após consulta do usuário ao sistema de ajuda CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Exemplos de medidas eficácia Medida Qualidade em uso Nome da medida: tarefas completadas Propósito: determinar proporção de tarefas completadas Fórmula: (# tarefas completadas / # tarefas tentadas Interpretação: 0 x 1; quanto mais próximo de 1, melhor Entradas: relatório de operação, registro de histórico de uso. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Relação entre necessidades e requisitos (ISO/IEC 25030) Necessidades de stakeholders (negócio): Coletadas e identificadas Planejadores Planejadores Desenvolvedores Desenvolvedores Distribuidores Distribuidores Usuários Usuários Usuários finais Usuários finais Outros Outros Selecionar e especificar Solicitar e identificar Necessidades de stakeholders: Explícitas, Implícitas ou Não pecebidas Necessid. Selec. e Especif./ Requisitos Qualidade em uso SQuaRE Requisitos: Funcionais Projeto Qld. Interna Requisitos funcionais Função 1 Função 1 Função 2 Função 2 Função n Função n Contexto uso 1 Contexto uso 2 Req. qldade externa Funcionalidade Contexto uso i Confiabilidade Requisitos: n/funcionais Projeto Qld.interna Usabilidade Contexto uso n Eficiência arquitetura estrutura Manutenibilid. Ambiente organizacional Portabilidade Ambiente sistema CELEPAR – Companhia de Informática do Paraná Estilo cód. Ambiente software Modelo SQuaRE Requisitos para os requisitos de qualidade (ISO/IEC 25030) •referir-se a um modelo de qualidade • Qualidade em uso, externa e interna • referir-se a um grupo de propriedades funcionais • especificados em termos de método de medição e valores esperados (ISO/IEC 25022, 25023 e 25024) • possibilidade de verificação do requisito • consistência (ausência de conflitos entre requisitos) • registrados de forma a permitir sua gestão • rastreáveis em relação as necessidades de stakeholders CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE SQuaRE Processo de Avaliação- Visão Geral (ISO/IEC 2504n) Estabelecer Requisitos de Avaliação Especificar a Avaliação Estabelecer o propósito da avaliação Identificar tipos de produto(s) a serem avaliados Especificar modelo de qualidade Selecionar medidas Estabelecer níveis de pontuação p/ as medidas Estabelecer critérios para julgamento Projetar a Avaliação Produzir o plano de avaliação Obter as medidas Executar a Avaliação Comparar com critérios Julgar os resultados CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Benefícios com o uso do modelo SQuaRE • Modelo que representa a qualidade esperada do produto de software • Orientações para desdobramento das necessidades em qualidade em uso, qualidade externa e qualidade interna • Possibilita maior eficácia na definição e desenvolvimento da solução envolvendo software • Orienta ações gerenciais através de avaliações de produtos intermediários • Propõe a perspectiva da qualidade final através de avaliações intermediárias • Permite a rastreabilidade entre necessidades, requisitos e medidas decorrentes de avaliações • Melhoria da qualidade do produto e do processo de software CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE A nova arquitetura SQuaRE - Evolução 2501n Quality Quality Model Model Division Division 2500n 2503n Quality Quality Requirements Requirement Division Division Quality Management Division Guide to the SQuaRE Planning and Management 2504n Quality Quality Evaluation Evaluation Division Division 2502n Quality Measurement Quality Metrics Division Division CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE C.E. QUALIDADE DE SOFTWARE SC10 Rua Mateus Leme, 1142 CEP: 80.530-010 Curitiba - Pr Fone:(41) 350-5457 FAX: (41) 352-2222 www.pr.gov.br/abntsoftware E-mail: [email protected] [email protected] CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Quality management division •25000 - Guide to SQuaRE; 25001 - Planning and management:. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Quality model division • 25010 - Quality model and guide Quality measurement division •25020 - Measurement reference model and guide •25021 – Measurement primitives •25022 – Measurement of internal quality •25023 – Measurement of external quality •25024 – Measurement of quality in use CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Quality requirements division •25030 – Quality requirements Quality evaluation division •25040 – Evaluation reference model and guide •25041 - Evaluation modules •25042 – Evaluation process for developers •25043 – Evaluation process for acquirers •25044 – Evaluation process for evaluators CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições Funcionalidade: Capacidade do produto de software de prover funções que atendam necessidades explícitas e implícitas, quando o software estiver sendo utilizado sob condições especificadas. Confiabilidade: Capacidade do produto de software de manter um nível de desempenho especificado, quando usado em condições especificadas. Usabilidade: Capacidade do produto de software de ser compreendido, aprendido, operado e atraente ao usuário, quando usado sob condições especificadas. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições Eficiência: Capacidade do produto de software de apresentar desempenho apropriado, relativo à quantidade de recursos usados, sob condições especificadas. Manutenibilidade: Capacidade do produto de software de ser modificado. As modificações podem incluir correções, melhorias ou adaptações do software devido a mudanças no ambiente e nos seus requisitos ou especificações funcionais. Portabilidade: Capacidade do produto de software de ser transferido de um ambiente para outro. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições 1.1 Funcionalidade Capacidade do produto de software de prover funções que atendam necessidades explícitas e implícitas, quando o software estiver sendo utilizado sob condições especificadas. 1.1.1 Adequação Capacidade do produto de software de prover um conjunto apropriado de funções para tarefas e objetivos do usuário especificados. 1.1.2 Acurácia Capacidade do produto de software de prover, com o grau de precisão necessário, resultados ou efeitos corretos ou conforme acordados. 1.1.3 Interoperabilidade Capacidade do produto de software de interagir com um ou mais sistemas especificados. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições 1.1.4 Segurança de acesso Capacidade do produto de software de proteger informações e dados, de forma que pessoas ou sistemas não autorizados não possam lê-los nem modificá-los e que não seja negado o acesso às pessoas ou sistemas autorizados. [NBR ISO/IEC 12207:1998] 1.1.5 Conformidade relacionada à funcionalidade Capacidade do produto de software de estar de acordo com normas, convenções ou regulamentações previstas em leis e prescrições similares relacionadas à funcionalidade. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições 1.1 Confiabilidade Capacidade do produto de software de manter um nível de desempenho especificado, quando usado em condições especificadas. 1.1.1 Maturidade Capacidade do produto de software de evitar falhas decorrentes de defeitos no software. 1.1.2 Tolerância a falhas Capacidade do produto de software de manter um nível de desempenho especificado em casos de defeitos no software ou de violação de sua interface especificada. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições 1.1.3 Recuperabilidade Capacidade do produto de software de restabelecer seu nível de desempenho especificado e recuperar os dados diretamente afetados no caso de uma falha. 1.1.4 Conformidade relacionada à confiabilidade Capacidade do produto de software de estar de acordo com normas, convenções ou regulamentações relacionadas à confiabilidade. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições 1.1 Usabilidade Capacidade do produto de software de ser compreendido, aprendido, operado e atraente ao usuário, quando usado sob condições especificadas. 1.1.1 Inteligibilidade Capacidade do produto de software de possibilitar ao usuário compreender se o software é apropriado e como ele pode ser usado para tarefas e condições de uso específicas. 1.1.2 Apreensibilidade Capacidade do produto de software de possibilitar ao usuário aprender sua aplicação. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições 1.1.3 Operacionalidade Capacidade do produto de software de possibilitar ao usuário operá-lo e controlá-lo. 1.1.4 Atratividade Capacidade do produto de software de ser atraente ao usuário. 1.1.5 Conformidade relacionada à usabilidade Capacidade do produto de software de estar de acordo com normas, convenções, guias de estilo ou regulamentações relacionadas à usabilidade. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições 1.1 Eficiência Capacidade do produto de software de apresentar desempenho apropriado, relativo à quantidade de recursos usados, sob condições especificadas. 1.1.1 Comportamento em relação ao tempo Capacidade do produto de software de fornecer tempos de resposta e de processamento, além de taxas de transferência, apropriados, quando o software executa suas funções, sob condições estabelecidas. 1.1.2 Utilização de recursos Capacidade do produto de software de usar tipos e quantidades apropriados de recursos, quando o software executa suas funções sob condições estabelecidas. 1.1.3 Conformidade relacionada à eficiência Capacidade do produto de software de estar de acordo com normas e convenções relacionadas à eficiência. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições 1.1 Manutenibilidade Capacidade do produto de software de ser modificado. As modificações podem incluir correções, melhorias ou adaptações do software devido a mudanças no ambiente e nos seus requisitos ou especificações funcionais. 1.1.1 Analisabilidade Capacidade do produto de software de permitir o diagnóstico de deficiências ou causas de falhas no software, ou a identificação de partes a serem modificadas. 1.1.2 Modificabilidade Capacidade do produto de software de permitir que uma modificação especificada seja implementada. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições 1.1.3 Estabilidade Capacidade do produto de software de evitar efeitos inesperados decorrentes de modificações no software. 1.1.4 Testabilidade Capacidade do produto de software de permitir que o software, quando modificado, seja validado. 1.1.5 Conformidade relacionada à manutenibilidade Capacidade do produto de software de estar de acordo com normas ou convenções relacionadas à manutenibilidade. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições 1.1 Portabilidade Capacidade do produto de software de ser transferido de um ambiente para outro. 1.1.1 Adaptabilidade Capacidade do produto de software de ser adaptado para diferentes ambientes especificados, sem necessidade de aplicação de outras ações ou meios além daqueles fornecidos para essa finalidade pelo software considerado. 1.1.2 Capacidade para ser instalado Capacidade do produto de software para ser instalado em um ambiente especificado. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições 1.1.3 Coexistência Capacidade do produto de software de coexistir com outros produtos de software independentes, em um ambiente comum, compartilhando recursos comuns. 1.1.4 Capacidade para substituir Capacidade do produto de software de ser usado em substituição a outro produto de software especificado, com o mesmo propósito e no mesmo ambiente. 1.1.5 Conformidade relacionada à portabilidade Capacidade do produto de software de estar de acordo com normas ou convenções relacionadas à portabilidade. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições • Qualidade em uso do software: Capacidade de um produto de software de influenciar a eficácia, produtividade, segurança e satisfação de usuários de modo a satisfazer suas reais necessidades ao utilizar o produto de software para atingir suas metas em contextos de uso especificados. • Eficácia • Capacidade do produto de software de permitir que usuários atinjam metas especificadas com acurácia e completitude, em um contexto de uso especificado. Produtividade • Capacidade do produto de software de permitir que seus usuários empreguem quantidade apropriada de recursos em relação à eficácia obtida, em um contexto de uso especificado. NOTA - Recursos relevantes podem incluir tempo para completar a tarefa, esforço do usuário, materiais ou custos financeiros. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições Segurança • Capacidade do produto de software de apresentar níveis aceitáveis de riscos de danos a pessoas, negócios, software, propriedades ou ao ambiente, em um contexto de uso especificado. NOTA – Geralmente, os riscos são decorrentes das deficiências na funcionalidade (incluindo segurança de acesso), confiabilidade, usabilidade ou manutenibilidade. Satisfação • Capacidade do produto de software de satisfazer usuários, em um contexto de uso especificado. NOTA - Satisfação é a resposta do usuário à interação com o produto e inclui atitudes relacionadas ao uso do produto. CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Definições para produto de software Qualidade em uso: Capacidade de um produto de software de influenciar a eficácia, produtividade, segurança e satisfação de usuários de modo a satisfazer suas reais necessidades ao utilizar o produto de software para atingir suas metas em contextos de uso especificados. Qualidade externa: capacidade de um produto de software de influenciar o comportamento de um sistema para satisfazer necessidades explícitas e implícitas quando o sistema que inclui o software for utilizado em condições especificadas. Qualidade interna: capacidade de um conjunto de atributos estáticos de um produto de software de satisfazer necessidades explícitas e implícitas quando o produto de software for utilizado em condições especificadas. Atributo: propriedade inerente ou característica de uma entidade que pode ser distinguida quantitativamente ou qualitativamente de forma humana ou automática (ISO/IEC 15939) CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE Bibliografia ISO/IEC 9126-1: Software Engineering - Product quality - Part 1: Quality model ISO/IEC TR 9126-2: Software Engineering - Product quality - Part 2: External metrics ISO/IEC TR 9126-3: Software Engineering - Product quality - Part 3: Internal metrics ISO/IEC TR 9126-4: Software Engineering - Product quality - Part 4: Quality in Use ISO/IEC 14598-1: 1999, Information Technology - Product evaluation - Part 1: General overview ISO/IEC 14598-2: 1999, Software Engineering - Product evaluation - Part 2: Planning and management ISO/IEC 14598-3: 1999, Software Engineering - Software product evaluation - Part 3: Process for developers ISO/IEC 14598-4: 1999, Software Engineering - Software product evaluation - Part 4: Process for acquirers ISO/IEC 14598-5: 1998, Information Technology - Software Engineering - Software product evaluation Part 5: Process for evaluators ISO/IEC 14598-6: Information Technology - Software Engineering - Product evaluation - Part 6: Documentation of evaluation modules Azuma, M , Using quality models and metrics for software quality improvement, 2000 CELEPAR – Companhia de Informática do Paraná Modelo SQuaRE