Você está na página 1de 29

Unidade III

Unidade III
5 NORMAS DA QUALIDADE DE SOFTWARE

5.1 Introdução

Segundo a Associação Brasileira de Normas Técnicas (ABNT), a normalização é uma atividade que
estabelece, em relação a problemas existentes ou potenciais, prescrições destinadas à utilização comum
e repetitiva, com vistas à obtenção do grau ótimo de ordem em um dado contexto.

Os objetivos da normalização são:

• Economia

Proporcionar a redução da crescente variedade de produtos e procedimentos.

• Comunicação

Proporcionar meios mais eficientes na troca de informação entre o fabricante e o cliente,


melhorando a confiabilidade das relações comerciais e de serviços.

• Segurança

Proteger a vida humana e a saúde.

• Proteção do consumidor

Prover a sociedade de meios eficazes para aferir a qualidade dos produtos.

• Eliminação de barreiras técnicas e comerciais

Evitar a existência de regulamentos conflitantes sobre produtos e serviços em diferentes países,


facilitando, assim, o intercâmbio comercial.

Na prática, a normalização está presente na fabricação dos produtos, na transferência de tecnologia,


na melhoria da qualidade da vida, por meio de normas relativas à saúde, segurança e preservação do
meio ambiente.

Numa economia com competitividade acirrada e exigências cada vez mais crescentes, as empresas
dependem de sua capacidade de incorporação de novas tecnologias de produtos, processos e serviços.
52
QUALIDADE DE SOFTWARE

A competição internacional entre as empresas eliminou as tradicionais vantagens baseadas


no uso de fatores abundantes e de baixo custo. A normalização é utilizada frequentemente como
um meio para se alcançar a redução de custo da produção e do produto final, mantendo ou
melhorando sua qualidade.

A figura a seguir mostra que o desenvolvimento de software é composto de diversas fases em seu
ciclo de vida e que suas atividades produzem uma sequência de produtos relacionados.

Diversos produtos intermediários são gerados, e o produto final que será entregue ao cliente/usuário
deve atender aos requisitos do sistema.

As atividades e os artefatos (produtos) criados em um projeto de software são definidos pelas normas
ou padrões da organização.

Atividades,
Padrões de produtos, métodos,
desenvolvimento ferramentas...
de software

Requisitos Design Codificação Testes Manutenção

Rastreabilidade
Medidas da Produtividade
qualidade

Figura 7 - Modelo de qualidade

De acordo com Côrtes e Chiossi (2001), no modelo de qualidade de Card (1990), mostrado na
figura anterior, padrões e procedimentos definem o processo e o conjunto de expectativas para os
produtos. Cada atividade implicitamente inclui um processo e, dependendo da atividade, ela deve
observar características como produtividade e rastreabilidade. Chama-se produtividade a facilidade
de se estabelecer um processo de produção eficiente e eficaz. A rastreabilidade possibilita que sejam
verificados os objetivos funcionais e de desempenho do sistema de software.

Como a qualidade de software envolve tanto o processo de desenvolvimento quanto os produtos


gerados no processo, vem sendo normalizada e padronizada na busca por torná-la uma verdadeira
engenharia.

Existem diversas normas desenvolvidas para a área de software, no Brasil e no mundo. Esta unidade
abordará as principais e mais importantes para processos e produtos de software.

Serão apresentadas as normas e os padrões: ISO 9000, ISO/IEC 12207 IEEE Std 12207-2008 e
NBR ISO/IEC 9126-1.

53
Unidade III

Observação
International Organization for Standardization - ISO é o nome de
um grupo internacional de normalização localizado em Genebra, Suíça.
Fundado em 1947, não possui ligações com órgãos governamentais.

5.2 Norma ISO/IEC 12207 IEEE Std 12207-2008: engenharia de software e


sistemas, processo do ciclo de vida de software

Essa norma, ou padrão internacional, estabelece um framework comum para o processo de ciclo de
vida de software.

5.2.1 Resumo

A ISO/IEC 12207 estabelece um framework para o ciclo de vida do processo de software, com uma
terminologia bem definida que pode ser referenciada pela indústria de software. Ela pode ser aplicada
para aquisição de sistemas, produtos e serviços, suporte, desenvolvimento, operação e manutenção,
tanto para sistemas desenvolvidos internamente como externamente para uma organização.

Essa norma internacional provê um processo que pode ser utilizado para definir e melhorar processos
de ciclo de vida de software. Os processos, atividades e tarefas dessa norma ou padrão também podem
ser aplicados sozinhos ou em conjunto com a norma ISO/IEC 15288 (processos de ciclo de vida de
sistemas) na aquisição de um sistema que contenha software. Ela fornece um modelo de referência de
avaliação de processo de acordo com a norma ISO/IEC 15504-2 (avaliação de processo).

5.2.2 Definições

Na norma, um produto pode ser entendido como uma parte de um sistema, quando aplicável.
Apresenta os seguintes termos e definições:

• Adquirente

Uma organização que adquire ou obtém um sistema, produto ou serviço de software de um


fornecedor. O adquirente poderia ser comprador, cliente, proprietário ou usuário.

• Acordo

A definição de termos e condições sobre a qual o relacionamento de trabalho entre as partes


deverá ser conduzido.

• Aposentadoria ou retirada de operação

Retirada do software de funcionamento pela organização de operação ou manutenção, com


substituição parcial ou total por um novo sistema ou instalação de um sistema atualizado.
54
QUALIDADE DE SOFTWARE

• Aquisição

É o processo de obtenção de um sistema, produto ou serviço de software.

• Atividade

Conjunto de tarefas coesas de um processo.

• Auditoria

Processo conduzido por uma pessoa autorizada com o objetivo de prover um julgamento independente
de produtos e processos de software, a fim de avaliar a conformidade com seus requisitos.

• Avaliação

Uma determinação sistemática do grau de atendimento de uma entidade em relação aos critérios
para ela estabelecidos.

• Carteira de projetos (portfólio de projetos)

Conjunto de projetos que atenda aos objetivos estratégicos da organização.

• Ciclo de vida

Evolução de um sistema, produto, serviço, projeto ou entidade de origem humana, desde a


concepção até a retirada ou aposentadoria do sistema.

• Cliente

Organização ou pessoa que recebe um produto ou serviço.

Observação
Um cliente pode ser interno ou externo à organização. Outros termos
comumente usados para o cliente são adquirente ou comprador (adaptado
da norma ISO 9000: 2005).

• Cobertura de teste

Extensão ou quantidade de casos de teste para os requisitos do sistema ou software do produto.

• Contrato

Um acordo realizado entre duas partes, respaldado pela lei, ou acordo interno similar restrito a uma
organização para fornecimento de serviços de software ou para o fornecimento, desenvolvimento,
produção, operação ou manutenção de um produto de software.

55
Unidade III

• Declaração de trabalho

Documento utilizado pelo adquirente como um meio para descrever e especificar as tarefas a
serem executadas no âmbito do contrato.

• Desenvolvedor

Uma organização que executa atividades de desenvolvimento (incluindo análise de requisitos,


projeto, testes até aceitação) durante o processo de ciclo de vida de software.

• Elemento de sistema

Membro de um conjunto de elementos que constitui um sistema.

Observação
Um elemento de sistema é uma parte distinta que pode ser implementada
para cumprir os requisitos especificados. Pode ser hardware, software,
dados, pessoas, processos (por exemplo: os processos de prestação de
serviço para os usuários), procedimentos (por exemplo: as instruções do
operador), instalações, materiais e entidades naturais (organismos, por
exemplo, água, minerais), ou qualquer combinação.

• Estágio

Período dentro do ciclo de vida de uma entidade que mostra o estado de sua descrição ou
realização. Como usado nessa norma internacional, o estágio relata o progresso e os marcos de
progresso da entidade através do ciclo de vida, que podem ser “overlapados”.

• Facilidades

Meios físicos ou equipamento para facilitar a realização de uma ação, por exemplo: procedimentos,
instrumentos, ferramentas, técnicas etc.

• Firmware

A combinação de um dispositivo de hardware e instruções ou dados de computador que residem


como um software somente para leitura no dispositivo de hardware. Esse software não pode ser
diretamente modificado por um programa aplicativo.

• Fornecedor

Organização ou indivíduo que entra em um acordo com o adquirente para o fornecimento de


um produto ou serviço. O fornecedor pode ser um empreiteiro, produtor ou vendedor. Às vezes, o
adquirente e o fornecedor são parte da mesma organização.
56
QUALIDADE DE SOFTWARE

• Garantia da qualidade

Conjunto de atividades planejadas e sistemáticas, implementadas no sistema da qualidade e


demonstradas como necessárias para prover confiança adequada de que uma entidade atenderá
aos requisitos para a qualidade.

Garantia da qualidade interna: dentro de uma organização, proporciona confiança para a gestão.
Garantia da qualidade externa: em situações contratuais, proporciona confiança aos clientes ou
outros envolvidos.

Algumas ações de controle de qualidade e garantia de qualidade estão interligadas, a menos que a
qualidade não reflita inteiramente as necessidades do usuário e a garantia de qualidade não possa
fornecer proteção adequada e confiança.

• Implementador

Organização que realiza tarefas de implementação. Nesse padrão internacional, os termos


“desenvolver” e “implementador” são sinônimos.

• Item de configuração

Uma entidade dentro de uma configuração que satisfaz uma função de uso final e que pode ser
identificada de forma única em um determinado ponto de referência.

• Item de software

Código fonte, código objeto, código de controle, data de controle ou uma coleção desses itens.
Um item de software pode ser visto como um elemento de um sistema da iso/iec 15288:2008.

• Item que não será entregue

Hardware ou produto de software cuja entrega não é exigida em contrato, mas pode ser utilizado
no desenvolvimento do produto de software.

• Linha básica (baseline)

Uma versão formalmente aprovada de um item de configuração, independente de mídia,


formalmente definida e fixada em um determinado momento durante o ciclo de vida do item de
configuração.

• Mantenedor

Uma organização que executa atividades de manutenção.

57
Unidade III

• Modelo de ciclo de vida

Uma estrutura contendo processos, atividades e tarefas envolvidos no desenvolvimento, na


operação e na manutenção de um produto de software, abrangendo a vida do sistema desde a
definição de seus requisitos até o término de seu uso.

• Monitoração

Um exame da situação das atividades de um fornecedor e dos seus resultados, efetuado pelo
adquirente ou uma terceira parte.

• Operador

Uma entidade que opera o sistema. O papel do operador e o papel do usuário podem ser assumidos,
simultaneamente ou sequencialmente, pelo mesmo indivíduo ou organização. No âmbito dessa
definição específica, a entidade designa um indivíduo ou uma organização.

• Organização

Com definição adaptada da iso 9000:2005, organização é pessoa ou grupo de pessoas e instalações
com um conjunto de responsabilidades, autoridades e relacionamentos.

Um grupo de pessoas organizadas para algum objetivo específico, como um clube, sindicato,
corporação ou sociedade, também é uma organização. Uma parte identificada de uma organização
(mesmo tão pequena quanto um único indivíduo) ou um grupo identificado organizado podem
ser considerados uma organização, se têm responsabilidades, autoridades e relacionamentos.
Uma forma de entidade organizacional é frequentemente chamada de uma empresa, por isso os
aspectos organizacionais dessa norma aplicam‑se a uma empresa também.

• Parceria (parceiros)

Organizações que celebram contrato. Nessa norma, as partes do contrato são chamadas de
adquirente e fornecedor.

• Processo

Um conjunto de atividades inter-relacionadas que transforma entradas em saídas. O termo


“atividades” engloba a utilização de recursos.

• Produto

Resultado da execução de um processo (ISO 9000:2005).

• Produto de prateleira

Produto já desenvolvido e disponível para utilização na forma em que se encontra ou com modificação.
58
QUALIDADE DE SOFTWARE

• Produto de software

Conjunto de programas de computador, procedimentos e dados e documentação associada.

• Projeto

Esforço definido para iniciar e terminar as datas empreendidas para criar um produto ou serviço, de
acordo com recursos e requisitos específicos (iso 9000:2005). Um projeto pode ser visto como um
processo único, composto por atividades coordenadas e controladas, e constituído de atividades
do projeto, de processos e procedimentos técnicos definidos na presente norma.

• Propósito de processo

Objetivo de elevado nível de execução do processo e os resultados prováveis da implementação


efetiva do processo, que deve proporcionar benefícios tangíveis para os participantes.

• Qualificação

O processo de demonstrar se uma entidade é capaz de atender aos requisitos especificados.

• Recurso

Ativo que é utilizado ou consumido durante a execução de um processo.

• Release

Versão particular de um item de configuração que é disponibilizado para um propósito específico


(por exemplo: para teste, implantação etc.).

• Requisito de qualificação

Um conjunto de critérios ou de condições que, quando atendido, qualifica um produto de software


quanto à conformidade das suas especificações e à utilização no seu ambiente-alvo.

• Segurança

Proteção dos dados e informações de pessoa não autorizada ou sistemas que não podem ler ou
modificar.

• Serviço

Realização de atividades, tarefas ou direitos associados com o produto.

• Sistema

Combinação de elementos em interação organizada para atingir um ou mais propósitos. Um


sistema pode ser considerado como um produto ou como os serviços que presta.
59
Unidade III

Na prática, a interpretação do seu significado é frequentemente esclarecida com o uso de um


substantivo associativo, por exemplo, sistema da aeronave.

• Sistema de permissão

Dá suporte a um sistema de interesse durante a sua fase do ciclo de vida, mas não contribui
diretamente para a sua função durante a operação. Por exemplo, quando um sistema de interesse
entra em fase de produção, um sistema de produção de habilitação se torna necessário.

• Solicitação de proposta

Documento utilizado pelo adquirente ou cliente como o meio para anunciar sua intenção de
adquirir um serviço do sistema especificado, o produto ou serviço de software.

• Stakeholder

Indivíduo ou organização que tem um interesse claro no sistema ou na posse de suas características
e que deve atender suas necessidades e expectativas.

• Tarefa

Exigência, recomendação ou ação permissível que se destina a contribuir para a realização de um


ou mais resultados de um processo.

• Testabilidade

Quando um teste objetivo e factível pode ser projetado para determinar se um requisito é atendido.

• Unidade de software

Pedaço compilável de software.

• Usuário

Indivíduo ou grupo de indivíduos que se beneficiam de um sistema durante sua utilização. O papel
do usuário e o papel do operador podem ser assumidos, simultaneamente ou sequencialmente, no
mesmo indivíduo ou organização.

• Validação

Confirmação, com a prestação de provas objetivas, de que os requisitos para uma determinada
utilização ou aplicação foram cumpridos (iso 9000:2005). Num contexto de ciclo de vida, validação
é o conjunto de atividades destinadas a assegurar e garantir a confiança de que um sistema é
capaz de cumprir sua finalidade, metas e objetivos.
60
QUALIDADE DE SOFTWARE

• Verificação

Confirmação, com a prestação de provas objetivas, de que os requisitos especificados foram


cumpridos (iso 9000:2005). Num contexto de ciclo de vida, é um conjunto de atividades que
compara um produto do ciclo de vida com as características exigidas para esse produto. Isso pode
incluir a descrição de design e do próprio sistema.

• Versão

Instância identificada de um item. Modificações em uma versão de um produto de software,


resultando em uma nova versão, exige uma ação de gestão de configuração.

5.2.3 Categorias de processos do ciclo de vida

Essa norma internacional define os grupos de atividades que podem ser realizadas durante o ciclo
de vida do software em sete grupos de processo.

Cada um dos processos do ciclo de vida dentro desses grupos é descrito em termos da sua finalidade,
dos resultados desejados e das atividades e tarefas que precisam ser executadas para atingir esses
resultados.

Processos no contexto de sistema

• Processos de acordo (contrato)

— processo de aquisição;

— processo de fornecimento.

• Processos organizacionais

— processo de gerenciamento do modelo de ciclo de vida;

— processo de gerenciamento da infraestrutura;

— processo de gerenciamento do portfólio de projetos;

— processo de gerenciamento dos recursos humanos;

— processo de gerenciamento da qualidade.

• Processos de projetos

— processo de planejamento de projeto;


61
Unidade III

— processo de controle e melhoria de projeto;

— processo de gerenciamento de decisão;

— processo de gerenciamento de riscos;

— processo de gerenciamento de configuração;

— processo de gerenciamento de informação;

— processo de medição.

• Processos técnicos

— processo de definição de requisitos dos stakeholders;

— processo de análise de requisitos de sistemas;

— processo de design da arquitetura do sistema;

— processo de implementação;

— processo de integração de sistema;

— processo de teste e qualificação de sistema;

— processo de instalação de software;

— processo de suporte e aceite de software;

— processo de operação de software;

— processo de manutenção de software;

— processo de eliminação (descarte) de software.

• Processos específicos de software

— Processos de software de aplicação

- processo de implementação de software;


- processo de análise de requisitos de software;

62
QUALIDADE DE SOFTWARE

- processo de design da arquitetura de software;

- processo de design detalhado de software;

- processo de construção de software;

- processo de integração de software;

- processo de teste e qualificação de software.

— Processos de suporte de software support

- processo de gerenciamento de documentação de software;

- processo de gerenciamento de configuração de software;

- processo de garantia da qualidade de software;

- processo de verificação de software;

- processo de validação de software;

- processo de revisão de software;

- processo de auditoria de software;

- processo de resolução de problemas de software.

• Processos de reúso de software

— processo de engenharia de domínio;

— processo de gerenciamento de ativos reusáveis;

— processo de gerenciamento do programa de reúso.

Os efeitos e resultados dos processos do ciclo de vida constituem‑se em um modelo de referência


de processo. Este não representa uma abordagem de implementação particular, nem estabelece uma
metodologia ou técnicas específicas. Ao contrário, destina-se a ser adotado por uma organização com
base em suas necessidades de negócio e domínio das suas aplicações.

Os resultados são utilizados para demonstrar a plena consecução da finalidade de um processo. Isso
ajuda o processo de assessoria a determinar a capacidade daquele implementado na organização e a ser
fonte de material para o plano de melhoria de processos organizacionais.

63
Unidade III

Lembrete

O processo definido na organização deve ser adotado pelos projetos da


organização no contexto das necessidades do cliente.

5.2.4 Processo de gestão da qualidade

Com relação aos processos da qualidade de software, a norma tem como objetivo assegurar que os
produtos, serviços e implementações de processos de ciclo de vida de software cumpram os objetivos de
qualidade organizacional e que levem satisfação aos clientes.

Como resultado da implementação bem-sucedida do processo de gestão da qualidade, a norma


espera que sejam definidos: as políticas de organização de gestão da qualidade e procedimentos; os
objetivos de qualidade da organização; a responsabilidade e a autoridade de gestão da qualidade; e,
ainda, que o estado de satisfação do cliente seja monitorado e que sejam tomadas medidas adequadas
aos objetivos da qualidade, quando estes não forem alcançados.

A organização deve implementar as seguintes atividades e tarefas, de acordo com as políticas da


organização e procedimentos com respeito ao processo de gestão da qualidade:

• Gestão da qualidade

— A organização deve estabelecer políticas de gestão da qualidade, normas e procedimentos.

Observação

Um modelo de processo para o sistema de gestão da qualidade pode ser


encontrado na norma ISO 9001:2000. Para as organizações que pretendem
ir além da ISO 9001:2000, em busca da melhoria contínua do desempenho,
são fornecidas orientações da norma ISO 9004:2000. Informação sobre a
aplicação da ISO 9001:2000 para o software pode ser encontrada na ISO/
IEC 90003:2004.

A organização deve estabelecer metas de gestão da qualidade e objetivos baseados na estratégia


de negócios para a satisfação do cliente.

— A organização deve definir as responsabilidades e a autoridade para a implementação da


qualidade de gestão.

— A organização deve avaliar a satisfação do cliente e relatá-la. A aplicação dessa norma


estabelece a organização com uma abordagem para a realização da satisfação do cliente.

64
QUALIDADE DE SOFTWARE

— A organização deve realizar revisões periódicas dos planos de qualidade de projeto e assegurar
que os objetivos de qualidade com base nos requisitos das partes interessadas são estabelecidos
para cada projeto.

— A organização deve monitorar o status de melhoria da qualidade de produtos e serviços.

• Gestão da qualidade de ações corretivas

— A organização deve tomar ações corretivas quando as metas de gestão da qualidade não são
alcançadas.

— A organização deve implementar ações corretivas e comunicar os resultados através da


organização.

Ainda em relação à qualidade, a norma propõe diversos processos mais específicos dentro dos grupos de
processos que permeiam as atividades de desenvolvimento de um software, como processo de teste e qualificação
de sistema, processo de teste e qualificação de software, processo de garantia da qualidade de software, processo
de verificação de software, processo de validação de software e processo de revisão de software.

Saiba mais
O prof. Dr. Marcelo Nogueira, da Universidade Paulista, no artigo
Qual a importância da adoção da norma ISO 12207 nas empresas de
desenvolvimento de software?, disponível no endereço a seguir, discute a
crise do software e o uso das normas ISO.
<http://www2.dem.inpe.br/ijar/ISO%2012207%20Artigo.pdf>

6 NORMAS DA SÉRIE NBR ISO 9000

Descrevem os elementos da garantia da qualidade em termos genéricos, que podem ser aplicados a
qualquer negócio, independentemente dos produtos e serviços oferecidos.

Para se registrar em um dos modelos de sistemas de garantia da qualidade contidos nas normas ISO
9000, o sistema e as operações de qualidade da empresa são escrutinados por auditores externos para
verificação do atendimento das normas e da efetividade da operação.

Após o registro bem-sucedido, a empresa recebe um certificado de um corpo de registro representado


pelos auditores. Auditorias de vigilância semestrais garantem a continuidade de conformidade com as
normas (PRESSMAN, 2006).

A ISO elaborou normas de aplicação geral que no início foram direcionadas para as áreas de manufatura
ou industrial, mas que em seguida foram estendidas a todas as áreas de atividade econômica. Dessa
65
Unidade III

forma, essas normas são atualmente aplicadas à indústria e ao setor de serviços de todas as naturezas.
A série ISO 9000 é composta de:

• NBR ISO 9000 – normas de gestão da qualidade e garantia da qualidade. Diretrizes para seleção e
uso. Apoia as empresas na seleção da norma mais apropriada para seu negócio e na sua utilização.

• NBR ISO 9001 – sistemas da qualidade. Modelo de garantia da qualidade em projeto,


desenvolvimento, produção, instalação e assistência técnica. É a norma mais geral da série e pode
ser aplicável a qualquer empresa ou atividade.

• NBR ISO 9002 – sistemas da qualidade. Modelo para a garantia da qualidade em produção e
instalação. Para empresas que não têm atividades de desenvolvimento.

• NBR ISO 9003 – sistemas da qualidade. Modelo para garantia da qualidade em inspeção e ensaios
em geral. Norma restrita à área de inspeção e testes.

• NBR ISO 9004 – gestão da qualidade e elementos do sistema da qualidade. Diretrizes. Documento
que traz orientações gerais para a implantação de gestão da qualidade.

Para a área de software, a ISO desenvolveu o guia ISO 9000-3 (diretrizes para aplicação da ISO 9001),
para projeto, desenvolvimento, fornecimento, instalação e manutenção de software.

Outra norma para aplicação no desenvolvimento de software é a ISO 12207, que trata dos processos
do ciclo de vida de software e tem muitos pontos de contato comuns com a ISO 9000-3.

Observação

Todas as normas ISO apresentadas foram adaptadas pela NBR, que


manteve os mesmos nomes originais da ISO.

6.1 Norma NBR ISO 9000-3: projeto, desenvolvimento, fornecimento,


instalação e manutenção de software

De acordo com a ABNT, com relação a NBR ISO 9000-3, o processo de desenvolvimento e manutenção
de software é diferente dos demais tipos de produto s industriais, tornando-se necessário prover, nesse
campo da tecnologia de desenvolvimento tão rápido, orientações adicionais para o estabelecimento
de sistemas de qualidade em que estejam envolvidos os produtos de software, levando-se em conta o
estágio atual da tecnologia.

6.1.1 Termos e conceitos utilizados na norma

A norma NBR ISO 9000-3 define e conceitua os termos utilizados nesta disciplina:

66
QUALIDADE DE SOFTWARE

Software

Criação intelectual compreendendo os programas, procedimentos, regras e qualquer documentação


correlata à operação de um sistema de processamento de dados.

Produto de software

Conjunto completo de programas de computador, procedimentos e documentação correlata, assim


como dados designados para entrega a um usuário.

Desenvolvimento

Todas as atividades realizadas para a criação de um produto de software.

De acordo com a norma, os softwares raramente são submetidos a avaliações formais de qualidade,
existindo poucas ações tomadas nessa área. A qualidade do software fica, normalmente, dependente
das habilidades dos profissionais envolvidos no sistema.

Como consequência da pouca atenção dispensada à qualidade do software, mais de 50% do tempo
e custos empregados no desenvolvimento de um software concentram‑se em atividades de teste e
manutenção (para ser conservador).

Estamos certos de que o levantamento e a especificação corretos das necessidades ou requisitos


dos usuários, dos objetivos, da qualidade e dos critérios de aprovação devem reduzir o tempo de
desenvolvimento, diminuir custos e, por consequência, aumentar a lucratividade e a competitividade
das empresas de software.

Os profissionais da área devem se conscientizar de que é necessária uma busca contínua da melhora
da qualidade do software, principalmente com a abertura do mercado brasileiro e a chegada do software
importado, desenvolvido para usuários com níveis de exigências bem superiores aos dos usuários médios
brasileiros.

6.1.2 Qualidade de processos

A ISO-9000-3 apresenta diretrizes para aplicação da ISO-9001 ao desenvolvimento, fornecimento e


manutenção de software.

Ela se aplica aos casos em que existe um contrato formal entre fornecedor e cliente. As diretrizes da
ISO-9000-3 cobrem questões como:

• entendimento comum dos requisitos funcionais pelo contratante e contratada;

• uso de metodologia de desenvolvimento de software desde a concepção até a instalação do


software;
67
Unidade III

• metodologia de gerenciamento do projeto.

Encontra‑se dividida em três partes principais:

• estrutura do sistema da qualidade;

• atividades do ciclo de vida do software;

• atividades de suporte.

6.1.3 Estrutura do sistema de qualidade (quality framework)

A ISO-9000-3 descreve as responsabilidades e ações relacionadas à qualidade, que devem ser


tomadas tanto pelo fornecedor como pelo cliente ao longo das fases do ciclo de vida do software.

A aplicação da norma deve propiciar aos fornecedores de software uma política de qualidade formal
e documentada, divulgada e compreendida por todos os funcionários, que precisam ter como parte do
trabalho a responsabilidade e a autoridade suficientes para implementar essas políticas.

A empresa deve possuir pessoas e recursos para verificar, de forma independente, o emprego correto
de suas políticas de qualidade.

O executor não pode ser seu próprio auditor. A auditoria deve estar a cargo de um setor, de um
grupo interno de qualidade ou de uma empresa independente de auditoria especializada.

São quatro os pontos cobertos pelo capítulo da norma que trata da estrutura do sistema da qualidade:

• estabelecimento de responsabilidades gerenciais;

• definição e documentação do próprio sistema da qualidade;

• procedimentos para auditoria interna do sistema da qualidade;

• procedimentos para ações corretivas.

6.1.4 Atividades do ciclo de vida do software

O ciclo de vida de um projeto de desenvolvimento de um software é normalmente dividido em fases,


etapas e atividades.

Existem diversas alternativas de organização do ciclo de vida do desenvolvimento de software, mas


basicamente todas elas se encaixam na estrutura apresentada a seguir.

• Fase 1: estudo preliminar (definição do escopo do sistema, requisitos).


68
QUALIDADE DE SOFTWARE

• Fase 2: análise ou especificação do sistema (detalhamento ou elaboração das funcionalidades).

• Fase 3: design ou estruturação física do sistema.

• Fase 4: programação ou construção.

• Fase 5: implantação ou liberação para produção.

• Fase 6: manutenção.

Lembrete

O ciclo de vida de um software é padronizado pela norma ISO/IEC 12207.

O sistema da qualidade deve atuar sobre todo o ciclo de vida do software, e a qualidade deve ser
buscada em cada atividade, e não simplesmente avaliada no final.

A norma, independentemente do modelo ou metodologia adotada pela empresa, prevê que as


atividades do ciclo podem ser agrupadas em nove grandes categorias.

• Análise crítica de contrato (contract review)

Aborda os itens padrões que devem constar nos contratos relativos à compra e venda de software:
abrangência do trabalho, contingências e proteção de informações proprietárias.

• Especificação de requisitos do comprador (purchaser’s requirements specification)

Trata das especificações de requisitos funcionais a serem preparados em conjunto pelo comprador
e fornecedor, devem incluir aspectos de: performance, confiabilidade, segurança e privacidade.

• Planejamento do desenvolvimento (development planning)

Enfatiza a necessidade e define um plano de desenvolvimento do software. O plano deve incluir:


definição do projeto, organização dos recursos, fases do desenvolvimento, cronogramas e plano
de testes.

Devem também ser contemplados no plano as formas de controle de entrada e saída para cada
fase do ciclo de vida e um método de monitorar e verificar o progresso.

• Planejamento da qualidade (quality planning)

Trata da elaboração de um plano da qualidade específico para o projeto em desenvolvimento, e


deve englobar itens especiais não cobertos pelo sistema da qualidade geral da empresa.
69
Unidade III

O plano da qualidade deve tratar dos objetivos de qualidade do produto de software em


desenvolvimento, como redução do reprocessamento, redução do número de chamadas da
assistência técnica e redução do número de horas de treinamento.

Deve também tratar dos critérios de saída de cada fase e entrada na seguinte, do planejamento
detalhado de atividades de verificação e validação (homologação de produtos das fases) e de
responsabilidades específicas para as atividades da qualidade (matriz de responsabilidades).

• Projeto e implementação (design e implementation)

Preconiza uma análise e um projeto de software disciplinado, em que comprador e fornecedor


concordam previamente com o conjunto de informações que serão fornecidas ao comprador pelo
software.

O fornecedor deve usar uma metodologia sistemática que envolva o comprador o máximo possível
nessas fases e, dentro do possível, valer-se da experiência passada.

O projeto deve considerar as futuras manutenções e aderir às regras e padrões da empresa quanto
às confecções da interface homem/máquina e ao uso dos ambientes de programação.

• Teste e certificação (test and validation)

Define a necessidade de teste e a homologação do software em vários níveis. Um plano de testes


deve ser montado, cobrindo ambiente, documentação, casos de teste e dados, simulação do
sistema completo e testes de campo.

• Aceitação (acceptance)

Cobre os termos acordados previamente e as condições impostas pelo comprador para aceitação do produto.

São abordadas questões como testes de aceitação e procedimentos para avaliação. Ambientes e
recursos de software e hardware são definidos nessa categoria.

• Reprodução, expedição e instalação (replication, delivery and installation)

Trata do registro de considerações relativas ao número de cópias, tipo do meio físico utilizado,
direitos autorais e licenças, critérios de envio e obrigações do fornecedor e do comprador ligadas
à instalação do software desenvolvido.

• Manutenção (maintenance)

Trata a manutenção como uma questão da qualidade, em que esse serviço é incluso no contrato de
compra. Serviços de manutenção normalmente envolvem: mudanças no software, solução de problemas,
correção de defeitos, modificação de interfaces, melhorias de desempenho e expansões funcionais.
70
QUALIDADE DE SOFTWARE

A norma propõe a existência de um plano de manutenção, documentação e critérios de liberação


em função da incorporação de alterações no software.

6.1.5 Atividades de suporte

As atividades de suporte não se encontram atreladas a uma determinada fase do ciclo de vida do
software, elas permeiam todas as fases. E compreendem nove itens, os quais devem ser desenvolvidos e
implementados pelo fornecedor do software.

Sistema de gestão da configuração

Gestão de configuração significa identificação, rastreamento e controle de alterações do software.

O sistema de gestão da configuração deve fornecer um mecanismo para controle e rastreamento do


software e seus componentes, de modo que seja possível:

• identificar cada versão;

• controlar a atualização simultânea do software por mais de uma pessoa;

• rastrear e identificar todas as alterações resultantes de um pedido de alteração.

Controle de documentos

Estabelece que o fornecedor deve manter procedimentos para controlar toda a documentação
relacionada à qualidade do software. A norma define os documentos mínimos que devem ser
controlados:

• descrição do sistema de qualidade ao longo do ciclo de vida do software;

• documentos de planejamento das atividades do fornecedor e de suas interações com o cliente;

• documentos relacionados ao produto em si.

Registros da qualidade

Definem que o fornecedor deve manter formas para identificar, coletar, indexar, arquivar, armazenar,
manter e dispor dos registros da qualidade, de forma que sejam rapidamente recuperáveis.

Medição

Este item trata das métricas e das técnicas de medição estabelecidas para realizar as medições nos
produtos e nos processos desde o desenvolvimento até a produção.

71
Unidade III

Apesar de a norma reconhecer que não existem indicadores de qualidade de software aceitos
universalmente, adverte que deve ser usado algum tipo de indicador para expressar falhas e/ou defeitos
que façam sentido do ponto de vista do cliente.

Exemplos de indicadores propostos pela norma:

• número de falhas por dias de uso efetivo do software;

• tempo médio de reparo de problema (Medium Time To Repair - MTTR);

• tempo médio entre duas falhas consecutivas (Medium Time Between Failures - MTBF);

• número de problemas com solução pendente.

Regras, práticas e convenções

Estipulam que cada fornecedor de software deve definir suas regras, práticas e convenções, de
maneira que tornem efetivo o sistema de qualidade estipulado na ISO-9000-3.

Ferramentas e técnicas

Impõem como responsabilidade do fornecedor a utilização de ferramentas, recursos e técnicas de


sua escolha que garantam a efetividade das diretrizes das normas.

Aquisição

A norma aborda a avaliação sobre se o hardware, os serviços e as ferramentas de desenvolvimentos


necessários para compor o produto final estão de acordo com os requisitos especificados, como forma
de garantir a sua qualidade.

Produto para ser incluído no software

Trata dos cuidados relativos à qualidade no uso de partes de softwares do próprio comprador ou de
terceiros, que serão integradas para compor o software contratado e em desenvolvimento.

Treinamento

Apresenta a responsabilidade do fornecedor relativa à identificação das necessidades de treinamento,


visando à qualificação do próprio pessoal ou do cliente e ao preparo de quem executa tarefas que
possam influenciar na qualidade.

72
QUALIDADE DE SOFTWARE

Saiba mais

Para um detalhamento maior sobre a norma NBR ISO 9000-3, acesse:

<http://pt.scribd.com/doc/112728845/NBR-ISO-9000-3-2003-Gestao-
da-Qualidade-Aplicacao-da-NBR>

6.2 Norma NBR ISO/IEC 9126-1 2003 – engenharia de software – qualidade


de produto

De acordo com a norma NBR ISO/IEC 9126-1, os computadores têm sido usados numa variedade de
áreas de aplicação e sua correta operação é frequentemente crítica para o sucesso de negócios e para a
segurança humana.

Desse modo, desenvolver ou selecionar produtos de software de alta qualidade é de primordial


importância. Especificação e avaliação da qualidade do produto de software são fatores-chave para
garantir a qualidade adequada. Isso pode ser alcançado pela definição apropriada das características de
qualidade, levando em consideração o uso pretendido do produto de software.

A norma tem como objetivo permitir que a qualidade do produto de software seja especificada e
avaliada em diferentes perspectivas pelos envolvidos com aquisição, requisitos, desenvolvimento, uso,
avaliação, apoio, manutenção, garantia de qualidade e auditoria de software.

Pode ser utilizada por desenvolvedores, adquirentes, pessoal de garantia de qualidade e avaliadores
independentes e, particularmente, pelos responsáveis por especificar e avaliar qualidade do produto de
software.

6.2.1 Diretrizes para uso da norma NBR ISO/IEC 9126-1

De acordo com Guerra e Colombo (2009), essa norma pode ser aplicada na avaliação da qualidade
nos seguintes momentos ou situações:
• definição dos requisitos de qualidade de um produto de software;

• avaliação da especificação de software para verificar se ele irá satisfazer aos requisitos de qualidade
durante o desenvolvimento;

• descrição de particularidades e atributos do software implementado, por exemplo, em manuais de


usuário;

• avaliação do software desenvolvido, antes da entrega;

• avaliação do software desenvolvido, antes da aceitação.

73
Unidade III

6.2.2 Características da qualidade da norma NBR ISO/IEC 9126-1

A norma apresenta seis características de qualidade para um software, conforme Côrtes e Chiossi
(2001).

Funcionalidade

Conjunto de funções especificadas para atender aos requisitos do cliente/usuário. Esse conjunto de
funções caracteriza o que o software deve fazer para satisfazer às necessidades do cliente/usuário.

A funcionalidade pode ser ainda desdobrada nas subcaracterísticas:

• adequação: significa a garantia de que o software possui as funções que foram especificadas;

• conformidade: se os produtos de software foram desenvolvidos observando os padrões, convenções


ou regras estabelecidos no projeto;

• acurácia: o produto de software gera resultados precisos ou dentro dos limites esperados;

• segurança de acesso: capacidade do produto de software de prevenir acessos por pessoas ou


aplicações não autorizadas;

• interoperabilidade: capacidade de interagir com outros sistemas, de acordo com as especificações.

Confiabilidade

Medida da capacidade do software de manter seu nível de desempenho dentro de condições


estabelecidas entre as partes em um período de tempo.

A confiabilidade pode ser ainda desdobrada nas subcaracterísticas:

• maturidade: indicação de baixa frequência de falhas ou defeitos do produto de software em operação;

• tolerância a falhas: indicação de que o produto de software pode manter determinados níveis de
desempenho mesmo quando se apresentarem problemas na sua execução;

• recuperabilidade: o produto de software possui capacidade para reestabelecer o nível de desempenho


preestabelecido e garantir a recuperação das bases de dados em caso de ocorrência de falhas.

Usabilidade

Medida do esforço necessário para o uso do software por um usuário de perfil determinado de forma
explícita ou implicitamente. A usabilidade de um software está ligada aos conceitos de ergonomia entre
o homem e o computador.

74
QUALIDADE DE SOFTWARE

Pode ser ainda desdobrada nas subcaracterísticas:

• inteligilidade: medida da facilidade do usuário para reconhecer a lógica de funcionamento do


produto e sua aplicação;

• apreensibilidade: medida da facilidade encontrada pelo usuário para aprender a utilizar o produto;

• operacionalidade: medida da facilidade para operar o produto.

Eficiência

Determinação da quantidade de recursos utilizada pelo software com relação ao seu desempenho,
sob condições de uso preestabelecidas.

A eficiência pode ser ainda desdobrada nas subcaracterísticas:

• comportamento com relação ao tempo: medida do tempo de resposta e de processamento, assim


como as taxas de saídas ao executar as funções especificadas;

• comportamento com relação ao uso de recursos: medida da quantidade de recursos necessários


(CPU, disco, rede e memória, entre outros) e a duração do seu uso ao executar as funções
especificadas.

Manutenibilidade

Medida do esforço necessário (homens/hora) para fazer alterações no software.

A manutenibilidade pode ser desdobrada nas subcaracterísticas:

• analisibilidade: medida do esforço necessário para diagnosticar deficiências e localizar as partes


para corrigir os problemas;

• modificabilidade: medida do esforço necessário para remover falhas ou para adequar o produto a
eventuais mudanças na tecnologia ou no ambiente operacional;

• estabilidade: medida do risco de efeitos inesperados provenientes de modificações no produto de


software;

• testabilidade: medida do esforço necessário para testar o produto de software alterado.

Portabilidade

Medida da facilidade de transferir o produto de software de um ambiente operacional para outro


diferente.

75
Unidade III

A portabilidade pode ser ainda desdobrada nas subcaracterísticas:

• adaptabilidade: medida da facilidade de adaptar o produto de software para funcionar em outros


ambientes operacionais;

• facilidade de instalação: medida do esforço necessário para instalar o produto de software;

• capacidade de coexistir: medida do nível de conformidade do produto de software com padrões


referentes à portabilidade;

• facilidade para substituir: medida do esforço necessário para usar o produto em substituição a
outro, previamente especificado.

6.2.3 Visões da qualidade de software da norma NBR ISO/IEC 9126-1

A norma apresenta três visões da qualidade de software: a do usuário, do desenvolvedor e do gerente


de desenvolvimento.

Do ponto de vista do usuário, a norma discute o interesse deste com relação ao funcionamento do
produto de software, o seu desempenho e os efeitos do seu uso.

O usuário está voltado para as medidas externas da qualidade do produto de software, como nas
funções que estão disponíveis, na confiabilidade, na facilidade de uso e na portabilidade.

Já quanto à visão do desenvolvedor, a norma preocupa‑se com a qualidade dos requisitos e com a
aceitação do produto pelo cliente/usuário.

Para que o desenvolvedor dê essas garantias, ele verifica a qualidade dos produtos intermediários
por meio de técnicas da qualidade (verificação, revisão e testes) e usa as chamadas medidas internas.

O desenvolvedor deve se preocupar também com as expectativas da qualidade das pessoas que irão
dar manutenção ao produto do software no futuro.

Com relação à visão do gerente de desenvolvimento, a norma propõe que ele se preocupe com uma
medida de qualidade geral para obter uma visão mais próxima dos objetivos do projeto e do produto de
software, em consonância com os objetivos do negócio da empresa. Ele deve balancear as melhorias da
qualidade do produto com a garantia da execução dos cronogramas, previsões de custo e uso adequado
dos recursos necessários.

A norma propõe o uso de métricas para medir as seis características da qualidade de produto de
software, todavia não apresenta essas métricas e sugere que cada organização desenvolva as suas
próprias, bem como seus próprios processos de medição.No entanto, define um processo de avaliação
da qualidade de produto de software a partir das seis características determinadas na própria norma.

76
QUALIDADE DE SOFTWARE

O processo de avaliação proposto parte da definição dos requisitos da qualidade, aborda a preparação
da avaliação e encerra com a avaliação propriamente dita.

Saiba mais
O artigo Um modelo de avaliação de produtos de software, de Lúcio André
Mendonça dos Anjos e Hermano Perrelli de Moura, discute a visão da qualidade
de produto fundamentada na série de normas ISO/IEC 9126, 14598 e 12119.
<http://php.cin.ufpe.br/~laps/laps/arquivo/arquivo_13.pdf>

Resumo
Esta unidade teve início com as definições de norma e normatização
encontradas na Associação Brasileira de Normas Técnicas (ABNT). As normas
têm por objetivo estabelecer prescrições destinadas à utilização comum e
repetitiva de atividades nos processos organizacionais.

Diversos objetivos foram apresentados com relação à adoção de normas


nas empresas, como: economia, comunicação, segurança, proteção ao
consumidor e eliminação de barreiras técnicas e comerciais.

Foi apresentado também o modelo de qualidade proposto por Card


(1990), indicando os padrões de desenvolvimento de software e o banco de
dados das medidas obtidas ao longo do tempo, tanto nos processos quanto
nos produtos de software.

Foram expostas as principais normas da qualidade de processos e


produtos de software vigentes, em nível nacional e internacional. Foram
discutidas e apresentadas ainda as normas ISO/IEC 12207 de 2008 e a
série NBR ISO 9000, com ênfase na norma NBR ISO/IEC 9000-3, que trata
especificamente de software.

Com relação à qualidade específica de produtos de software, foi


detalhada a norma NBR ISO/IEC 9126-1, que trabalha os atributos da
qualidade de um produto de software e permite a montagem de atributos
para a avaliação e controle dos produtos de software produzidos e em uso
pelos clientes/usuários das organizações.

Foram detalhadas as seis características da qualidade de um produto de


software e as visões da qualidade por parte do usuário, do desenvolvedor e
do gerente de desenvolvimento.

77
Unidade III

Exercícios
Questão 1. Leia as duas afirmações a seguir:

Apenas a presença de desenvolvedores altamente treinados não é suficiente para o desenvolvimento


de um software, como às vezes se imagina. Para minimizar os problemas de comunicação, torna-se
necessário o uso de modelos de linguagens para o trabalho em equipe e para a comunicação com
usuários e clientes. Existem diversas propostas de modelos de linguagem de comunicação; todavia,
elas se tornam efetivas somente quando as empresas utilizam um processo ou guia organizacional
denominado Metodologia de Desenvolvimento de Sistemas.

Porque

O modelo de linguagem corresponde ao ponto principal da comunicação. Se uma pessoa quer


conversar sobre o projeto com outra pessoa, é adotando o modelo de linguagem que as duas se
entendem. Utiliza-se não o processo, mas tão somente o modelo de linguagem.

Assinale a alternativa correta:

A) As duas afirmações são verdadeiras, e a segunda justifica a primeira.

B) As duas afirmações são verdadeiras, e a segunda não justifica a primeira.

C) A primeira afirmação é verdadeira e a segunda é falsa.

D) A primeira afirmação é falsa e a segunda é verdadeira.

E) As duas afirmações são falsas.

Resposta correta: alternativa A.

Análise das afirmativas

Justificativa geral: um processo ou uma metodologia de software moderna propõe atividades que
integram a Engenharia de Software e devem ser seguidas. Como esses processos são unificados ou
padronizados, servem de guia de como usar efetivamente os métodos e as técnicas de desenvolvimento
de softwares. Basicamente, os processos de software possuem regras básicas, como:

• servir de guia para os desenvolvedores de softwares;

• especificar quais artefatos (como documentos, modelos e diagramas) devem ser desenvolvidos e
quando eles devem ser desenvolvidos;

78
QUALIDADE DE SOFTWARE

• dirigir as tarefas individuais e da equipe (time) como um todo.

• oferecer critérios para monitorar e medir os produtos e as atividades do projeto.

Os processos de software atualmente propõem o uso de pequenos ciclos de projeto (sprints), que
correspondem a uma iteração e resultam em um incremento no software. Iterações referem-se a passos
e a incrementos na evolução do produto final. Como exemplos desses processos de software, pode-se
citar o RUP (Rational Unified Process), o Scrum e o AUP.

Primeira afirmativa: correta.

Justificativa: as linguagens, ou os modelos de linguagens (como o UML – Unified Modeling Language),


definem uma notação e um metamodelo. A notação inclui todos os elementos de representação gráfica
vistos no modelo (como retângulos, setas e textos). É a sintaxe do modelo de linguagem que define uma
maneira mais rigorosa de usar a notação e permite a aplicação de um padrão que possa ser entendido
por todos da mesma maneira.

Segunda afirmativa: correta.

Justificativa: os processos de desenvolvimento de softwares, ou métodos de desenvolvimento,


compõem um guia de atividades, procedimentos e orientações para entender um problema, especificá-
lo e construí-lo usando-se as melhores práticas do mercado. Todavia, no momento de desenhar uma
solução, as pessoas estão essencialmente aplicando as regras e os padrões definidos pelo modelo de
linguagem. Os processos indicam as melhores práticas; mas, para serem genéricos, eles não mostram
“como” executar tarefas ou atividades. Desse modo, as duas afirmações são verdadeiras, e a segunda
justifica a primeira.

Questão 2. A figura a seguir é uma visão clássica, apresentada por Mário Lúcio Côrtes e
Thelma C. dos Santos Chiossi no livro Modelos de qualidade de software (1998). Baseado na
proposta do autor D. N. Card, esse modelo de qualidade apresenta padrões e procedimentos que
definem um processo de desenvolvimento de produtos e o conjunto de expectativas geradas
por ele. Cada atividade implicitamente inclui um processo e, dependendo da atividade, devem-
se observar características como a produtividade e a rastreabilidade. Chama-se produtividade
a facilidade de se estabelecer um processo de produção eficiente e eficaz. A rastreabilidade
possibilita que sejam verificados os objetivos funcionais e o desempenho do sistema de
software .

79
Unidade III

Atividades,
Padrões de produtos, métodos,
desenvolvimento ferramentas...
de software

Requisitos Design Codificação Testes Manutenção

Rastreabilidade
Medidas da Produtividade
qualidade

Considerando as afirmações e a figura, assinale a alternativa correta:

A) As atividades de requisitos design, codificação, testes e manutenção definem o processo de


qualidade de software.

B) As atividades de requisitos design, codificação, testes e manutenção definem o processo de


desenvolvimento de software, no qual são feitas as medições da qualidade de software.

C) A rastreabilidade, necessária à qualidade de um produto de software, aplica-se no processo de


desenvolvimento somente a partir das atividades de codificação.

D) A produtividade no desenvolvimento de software é antagônica à qualidade de software.

E) As atividades de revisão, inspeção e testes de software nem sempre melhoram sua qualidade.

Resolução desta questão na plataforma.

80

Você também pode gostar