Escolar Documentos
Profissional Documentos
Cultura Documentos
Abstract. The objective of this work is present a general view about software
quality basing on the described concepts for the Engineering of Software, through
two matures model witch guide how to reach software quality that are Norm NBR
ISO/IEC 9126, in your first part and the CMM (Capability Maturity Model)
model.
Resumo. O objetivo deste trabalho é apresentar uma visão geral da qualidade de
software, baseando-se nos conceitos descritos pela Engenharia de Software, por
meio de dois modelos maduros que orientam como atingir qualidade em software
que são a Norma NBR ISO/IEC 9126, em sua primeira parte e o modelo CMMI
(Capability Maturity Model Integration).
1. Introdução
A preocupação da produção de um software de qualidade não se restringe apenas a atingir
os objetivos (ou requisitos) esperados pelos usuários, mas também em obter um ciclo de
vida de produção de software que apresente as características desejáveis em qualquer
processo de desenvolvimento de software, como boa manutenibilidade, alta reusabilidade e
baixo acoplamento.
A indústria japonesa foi a precursora do Controle de Qualidade Total (TQC – Total
Quality Control), seguida pelos americanos, que definiram o modelo de Gerência da
Qualidade Total (Total Quality Management) (VASCONCELOS, 2006).
O Controle de Qualidade Total Japonesa tem seis características bastante
interessantes, que foi exportada para o ocidente, como: controle de qualidade em toda a
empresa com a participação de todos os membros da organização; educação e treinamento
em controle de qualidade; atividades do círculo de controle de qualidade; auditorias;
utilização de métodos estatísticos e atividades de promoção do controle de qualidade em
toda a nação (ISHIKAWA, 1993).
Ishikawa (1993) afirma que “o Controle de Qualidade é uma revolução do
pensamento administrativo, portanto os processos de pensamento precisam ser
2. O que é qualidade?
Qualidade, palavra derivada do Latim (qualitate), significa aquilo que caracteriza uma
pessoa ou coisa e que a distingue das outras (FERREIRA, 2004).
Para o mercado e a indústria, o conceito de qualidade foi primeiramente associado à
definição de conformidade às especificações de um padrão esperado na construção de um
objeto ou na prestação de um serviço. Posteriormente o conceito evoluiu para a visão de
Satisfação do Cliente (GARVIN, 2002). Vasconcelos (2006) complementa afirmando que
em geral, este conceito está relacionado a uma série de aspectos, tais como normalização e
melhoria de processo, medições, padrões e verificações.
Dessa forma, a Norma NBR ISO 8402 - Gestão da qualidade e garantia da qualidade
- definiu qualidade como a totalidade das características de uma entidade que lhe confere a
capacidade de satisfazer às necessidades explícitas e implícitas.
Para a Engenharia de Software, este conceito não é aplicado apenas nas
funcionalidades esperadas de um sistema, mas também às fases do ciclo de vida desde a sua
concepção, elaboração, implementação e teste do produto produzido.
Pressman (2002) afirma que o controle de qualidade de software é um conjunto
complexo de fatores que podem variar de acordo com as diferentes aplicações e de acordo
com os utilizadores que o requisitam.
3. Requisitos de software
Requisito é descrito como uma condição ou capacidade necessitada por um usuário para
resolver um problema ou alcançar um objetivo, ou seja, é uma condição necessária para a
obtenção de certo objetivo, ou para o preenchimento de certo fim. Em um software,
requisito é o que o sistema tem que ter para atender plenamente ao propósito para o qual foi
criado (FERNANDES, 2005).
Procurando garantir a especificação de requisitos de um sistema que atenda
adequadamente às necessidades e satisfaça às expectativas dos clientes, a engenharia de
requisitos fornece um mecanismo adequado para atender o que é esperado (PRESSMAN,
2005).
Dessa forma, os requisitos de um software são divididos em dois grandes grupos:
requisitos funcionais e requisitos não funcionais.
Sommervile (2003) define os requisitos não funcionais como sendo restrições sobre
os serviços ou as funções oferecidos pelo sistema. Entre eles dessacam-se restrições de
tempo, restrições sobre o processo de desenvolvimento, padrões, entre outros.
Ainda, a Norma NBR ISO/IEC 9126, descreve os requisitos não funcionais como a
qualidade de produto de um software.
Pressman (2002) descreve os requisitos funcionais como sendo declarações de
funções que o sistema deve fornecer; como o sistema deve reagir a entradas específicas e
como deve se comportar em determinadas situações. Em alguns casos, os requisitos
funcionais podem também explicitamente declarar o que o sistema não deve fazer.
Características Subcaracterísticas
Funcionalidade: como as funções e Adequação: existência de um conjunto de
propriedades específicas do produto, funções apropriadas para as tarefas
satisfazem as necessidades do usuário. requeridas;
Acurácia: produção de resultados ou efeitos
corretos;
Interoperabilidade: habilidade de
interação do produto de software com
outros produtos;
Conformidade: o produto está de acordo
com as convenções, as normas ou os
regulamentos estabelecidos; e
Segurança: aptidão para evitar acessos não
autorizados a programas e dados.
Confiabilidade: como o produto de Maturidade: estado de maturação do
software é capaz de manter seu nível de software, detectada por sua baixa freqüência
desempenho, ao longo do tempo, nas de falhas;
condições estabelecidas. Tolerância a falhas: o nível de
desempenho é mantido, quando ocorrem
falhas; e
Recuperabilidade: existem mecanismos
que restabelecem e restauram os dados após
a ocorrência de falhas.
Usabilidade: o esforço necessário para a Inteligibilidade: facilidade de
utilização do sistema, baseado em um entendimento dos conceitos utilizados no
conjunto de implicações e de condições do produto de software;
usuário. Apreensibilidade: facilidade de
aprendizado do software; e
Operacionalidade: faculdade de operar e
controlar operações pertinentes ao software.
Eficiência: como os recursos e os tempos Comportamento no tempo: refere-se ao
envolvidos são compatíveis com o nível de tempo de resposta de Processamento; e
desempenho requerido pelo software. Comportamento dos recursos: relaciona-
se com a quantidade dos recursos
empregados.
Manutenibilidade: refere-se ao esforço Analisabilidade: característica de ser
necessário para a realização de alterações possível diagnosticar deficiências e causas
específicas, no produto de software. de falhas;
Modificabilidade: característica que o
produto deve ter de forma a facilitar
modificações e remoções de defeitos;
Estabilidade: ausência de riscos ou
ocorrências de defeitos inesperados no
software; e
Testabilidade: facilidade de o produto ser
testado.
Portabilidade: facilidade de o software Adaptabilidade: faculdade de o produto
poder ser transferido de um ambiente para poder ser adaptado a novos ambientes;
outro. Instalabilidade: facilidade de instalação do
produto de Software Conformidade com
padrões;
Portatilidade: o produto está segundo os
padrões ou convenções de portatilidade; e
Substituibilidade: o produto de software
pode ser substituído por outro, sem grandes
esforços.
Tabela 2 – Características da Qualidade Interna e Externa
Características
Eficácia: capacidade do produto de software de permitir que seus 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.
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.
Satisfação: capacidade do produto de satisfazer usuários, em um contexto de uso
especificado.
Tabela 3 – Características da Qualidade de uso
8. Considerações Finais
Nesse artigo foi apresentada uma visão geral do conceito de Qualidade de Software
baseando-se em dois modelos que definem as características e métricas necessárias para se
atingir qualidade em um produto de software.
Pode-se concluir que diversos fatores influenciam na qualidade de um software e
esta deve ser analisada em todos os momentos do desenvolvimento. O ciclo de vida de
produção de um software deve ser constantemente avaliado para verificar se as
características apresentadas na Norma NBR ISO/IEC 9126 estão sendo cumpridas e se o
padrão de construção está seguindo as regras definidas no modelo CMMI, de forma a se
encaixar em um dos cinco níveis propostos.
A qualidade é um fator crucial, pois é ele quem define a satisfação do usuário em
relação ao produto construído. Dessa forma, a adoção de modelos e padrões, que podem
causar certo desconforto por parte dos desenvolvedores e engenheiros por conta do
aumento do tempo de desenvolvimento assim como a formalização de certas tarefas, gera
um produto mais confiável e que atende aos requisitos esperados, visto não somente pelo
usuário final, mas também pela própria empresa que desenvolve, pois ganha-se em diversas
características definidas pela Engenharia de Software como reusabilidade de código, por
exemplo.
9. Referências Bibliográficas
VASCONCELOS, Alexandre Marcos Lins de., [et. al]. Engenharia de Software para
Software Livre 1. Lavras: UFLA, 2006.
SOMMERVILE,