Qualidade de software é um tema que vem sendo abordado e evoluído há muito tempo em engenharia e arquitetura de software, tanto em relação à qualidade do processo (da concepção à construção e à manutenção) quanto em relação à qualidade do produto, o software em si.
Nas décadas de 70 a 90, organizações internacionais de normatização e padronização — como ISO/IEC, ANSI, IEEE e outros — definiram qualidade de produto como:
A totalidade dos recursos, aspectos e características de um produto ou serviço que suportam a sua capacidade de satisfazer os requisitos dados, as expectativas e as necessidades explícitas e implícitas.
Em seu estudo sobre qualidade de software, Software Quality: Definitions and Strategic Issues (PDF, abril 1996), o pesquisador Ronan Fitzpatrick propõe uma visão mais moderna e ousada de qualidade do produto de software, definindo assim:
Qualidade de software é a medida em que um conjunto definido pela indústria de características desejáveis são incorporadas em um produto, de modo a aprimorar seu desempenho durante sua existência.
O Modelo de Qualidade de Software proposto por James A. McCall e outros, em 1977, foi um dos primeiros largamente difundidos neste campo. Ele organiza os critérios de qualidade de software em três pontos de vista, a saber:
- Operação: características relativas ao uso do produto.
- Revisão: capacidade do produto ser modificado e evoluído.
- Transição: adaptabilidade a novos e diferentes ambientes.
Os critérios de qualidade elencados no Modelo de McCall em cada ponto de vista estão listados na tabela a seguir.
Operação | Revisão | Transição |
---|---|---|
Correção | Manutenibilidade | Portabilidade |
Confiabilidade | Flexibilidade | Reusabilidade |
Eficiência | Testabilidade | Interoperabilidade |
Integridade | ||
Usabilidade |
Atualmente existem outros modelos de avaliação da qualidade do produto de software, em especial o padrão internacional de engenharia de software ISO/IEC 9126, que trata da Qualidade do Produto. A norma se divide em quatro partes, sendo a primeira uma visão geral do modelo de qualidade, e as outras três, os grupos de métricas definidas para este modelo:
- Parte 1: Modelo de qualidade.
- Parte 2: Métricas externas.
- Parte 3: Métricas internas.
- Parte 4: Métricas de qualidade em uso.
Qualidade externa diz respeito ao produto final como percebido pelo usuário, enquanto qualidade interna se refere à estrutura e às características do produto em seu projeto e construção.
Mais recentemente, desde 2005, as normas ISO/IEC 9126 e a série ISO/IEC 14598, de avaliação de produto de software, tem sido integradas na nova Série de normas ISO/IEC 25000 – Software Engineering — Software product Quality Requirements and Evaluation (SQuaRE), que tem seu núcleo principal composto por cinco divisões:
- ISO/IEC 2500n – Divisão Gestão da Qualidade;
- ISO/IEC 2501n – Divisão Modelo de Qualidade;
- ISO/IEC 2502n – Divisão Medição da Qualidade;
- ISO/IEC 2503n – Divisão Requisitos de Qualidade;
- ISO/IEC 2504n – Divisão Avaliação da Qualidade.
Além deste núcleo principal, o SQuaRE contempla extensões, que tratam de temas específicos, como ISO/IEC 25051, SQuaRE Requisitos para qualidade de produtos comerciais de prateleira (Commercial Off-The-Shelf – COTS), e ISO/IEC 2506n, SQuaRE Common Industry Format (CIF) para usabilidade.
Os critérios de qualidade no Modelo de McCall são muito similares aos preconizados por outros modelos para classificação de atributos de qualidade de software, como o FURPS+ (Robert Grady e Deborah Caswell, HP, 1987-1992) e o da própria ISO/IEC 9126, quanto a requisitos não funcionais:
FURPS+ | ISO 9126 | McCall |
---|---|---|
Functionality (Funcionalidade) | Funcionalidade | – (n/a, funcional) |
Usability (Usabilidade) | Usabilidade | Usabilidade (Operação) |
Reliability (Confiabilidade) | Confiabilidade | Correção, Confiabilidade, Integridade (Operação) |
Performance (Desempenho) | Eficiência | Eficiência (Operação) |
Supportability (Suportabilidade) | Manutenibilidade | Manutenibilidade, Flexibilidade, Testabilidade (Revisão) |
+ (outros requisitos/restrições) | Portabilidade | Portabilidade, Interoperabilidade, Reusabilidade (Transição) |
.
Vale ressaltar que qualidade do software, abordada aqui, se entende por qualidade do produto de software em si, o que é distinto de qualidade do processo de software, que diz respeito à qualidade das atividades e forma pelas quais se produz software.
Para saber mais:
- Factors in Software Quality (PDF, em inglês), por McCall, Jim A.; Richards, Paul K.; Walters, Gene F. Relatório técnico final da General Electric Co. (GE), Sunnyvale, CA, EUA, novembro 1977. Volume I. Concepts and Definitions of Software Quality ; Volume II. Metric Data Collection and Validation ; Volume III. preliminary Handbook on Software Quality for an Acquisition Manager.
- Modelo McCall, 14 de maio de 2009, no blog Engenharia de Software.
- McCall’s Software Quality Checklist (PDF, em inglês), material de aula da disciplina CSE3308 Software Engineering: Analysis and Design, 2005, Monash University, Austrália.
- Referências sobre Produto de Software: Qualidade, Métricas e Teste, Engenharia de Software, Arquitetura de Software e sobre Maturidade e Qualidade de Processo de Software, por Márcio d’Ávila.
- Verbetes: Qualidade de software, Software quality (em inglês), em Wikipédia.
- Normas de Qualidade nos Processos de Desenvolvimento de Software (PDF), por prof. Ricardo J. Machado, Ph.D., Portugal, maio 2006.
- Software Quality Attributes; ISO 9126-1; e outros artigos sobre qualidade de software; em SQA.net – Software Quality Assurance.
- A Software Quality Model and Metrics for Identifying Project Risks and Assessing Software Quality (em inglês), por Lawrence E. Hyatt, NASA, e Linda H. Rosenberg, Ph.D., Unisys, NASA Goddard Space Flight Center, artigo apresentado na 8th Annual Software Technology Conference, Utah, EUA, abril 1996.
- Qualidade em Sistemas de Informação (PDF), Texto de apoio do Instituto Superior Miguel Torga, Portugal, dezembro 2002.
- Engenharia de Software – INE 5322 – Aula 3: Qualidade do produto de software (PDF), por Walter de Abreu Cybis, abril 2007, Universidade Federal de Santa Catarina (UFSC).
- Qualidade de Software (PDF), parte da Disciplina MC626, por Prof. Ricardo Anido, Universidade Estadual de Campinas (Unicamp). Adaptado de notas de aula da Prof. Eliane Martins.
- Software Quality (PDF, em inglês), 2005-2006, em Scribd.
- Qualidade do Produto de Software (PDF), por Ana Cervigni Guerra, Centro de Pesquisas Renato Archer (CenPRA) Tecnologia da Informação, Divisão de Qualificação em Software – DQS, junho 2009.
- O modelo SQuaRE, por Danilo Scalet, Q4E, 2008-03-02, no blog Qualidade de Software e Serviços.
- ISO/IEC 25000:2005 Preview (PDF), IEC – International Eletrotechnical Commission. Versão completa em ISO/IEC 25000:2005 – Software Engineering — Software product Quality Requirements and Evaluation (SQuaRE) — Guide to SQuaRE, ISO – International Organization for Standardization.
- Verbete: ISO/IEC 9126, em Wikipédia.
- FURPS+, por Fabrício Ferrari de Campos, 2008-07-10, no blog QualidadeBR.
- Verbete: FURPS (em inglês), em Wikipedia.
- The FURPS+ System for Classifying Requirements. In: Capturing Architectural Requirements (em inglês), por Peter Eeles, IBM, 2005-11-15.
Olá, vc tem um exemplo ou modelo de relatório de avaliação com base na ISO 9126.