• Nenhum resultado encontrado

2.3 Qualidade de Processo x Qualidade de Produto

2.3.2 Qualidade de Produtos de Software

Para avaliação de qualidade de produtos de software, as organizações internacionais de normalização ISO/IEC definiram as seguintes normas [22]:

• Norma de Avaliação das Características de Qualidade e Métricas: compreendendo a definição e seleção das (i) características e subcaracterísticas de qualidade, (ii) métricas externas e (iii) métricas internas.

• Normas de Avaliação dos Produtos de Software: envolvendo (i) a visão geral do produto, (ii) o planejamento e o gerenciamento, (iii) o processo de avaliação da equipe de desenvolvimento, (iv) o processo de seleção dos adquirentes, (v) o processo de avaliação aplicado pelos avaliadores, e (vi) os módulos de avaliação.

• Requisitos de qualidade e teste de pacotes de software.

Uma avaliação de qualidade de produto de software é direcionada para um único produto de

software de forma a julgar seu nível de qualidade [9]. A análise é feita utilizando um conjunto de

características por meio de técnicas apropriadas aplicadas a várias partes do produto: especificações, documentos técnicos, código-fonte, manuais do usuário, etc.

Uma avaliação de qualidade de produto de software está relacionada com a identificação de características importantes e que elas estão em conformidade com requerimentos e especificações pré-estabelecidos [9]. O principal propósito desta avaliação está em fornecer notas quantitativas e recomendações referente ao produto de software que sejam compreensíveis, aceitáveis e confiáveis por qualquer uma das partes interessadas.

Modelos de avaliação de qualidade de software devem mapear a realidade e/ou os requisitos pretendidos pelos usuários, enfocando as questões referentes à construção do produto e à monitoração dos possíveis desvios. Neste contexto, os modelos de avaliação de qualidade estão diretamente associados com o processo de medição, determinando como as medidas serão executadas e planejadas [21]. Apenas um bom método de desenvolvimento não é suficiente para garantir um produto de qualidade. Deve-se considerar também os fatores de suporte à decisão,

CAPÍTULO 2: QUALIDADE DE SOFTWARE

como a qualidade da equipe de desenvolvimento, e o tempo estipulado sob o qual os elementos desta equipe devem trabalhar [23].

Vários modelos de avaliação de qualidade de software têm surgido. O Padrão ISO é aceito mundialmente como uma referência e será apresentado na próxima seção. Outros modelos que podemos citar como exemplos são:

• O Paradigma Goal/Question/Metric (GQM) [24]: é uma estrutura para o desenvolvimento de um programa de métricas: definição, planejamento, construção, análise e feedback. Foi desenvolvida para várias áreas de estudo, especialmente aquela concernente a questões de melhoramento, e consiste em três etapas [25]:

1. Gerar um conjunto de alvos: baseando-se nas necessidades da organização, determina-se o que se quer melhorar e definem-se os alvos em termos de propósitos, perspectivas e ambientes, usando-se modelos genéricos.

2. Derivar um conjunto de questões: as questões quantificam os alvos como sendo possíveis, requerendo a interpretação de termos nebulosos, dentro do contexto do ambiente de desenvolvimento. As questões são classificadas como sendo relacionadas a produtos ou processos e fornecem feedback da perspectiva de qualidade.

3. Desenvolver um conjunto de métricas: essas métricas fornecem as informações necessárias para responder a cada questão. As métricas podem ser objetivas e subjetivas e possuem guias de interpretação, isto é, um valor que indique se o produto é de alta qualidade. Geralmente, uma questão não é respondida simplesmente por uma métrica, mas por uma combinação delas. Uma vez definidos os alvos, derivadas as questões, e desenvolvidas as métricas, são criadas matrizes para relacionar alvos/questões/métricas.

• O Projeto SCOPE [26]: Na estrutura e desenvolvimento do projeto Esprit, o projeto que trata das questões de certificação de qualidade de produtos de software é chamado Software

Certification Programme in Europe (SCOPE). Um dos resultados mais importantes deste

CAPÍTULO 2: QUALIDADE DE SOFTWARE

projeto é a definição de uma estrutura de avaliação, que tem sido experimentada em muitos estudos de caso. A avaliação é realizada para vários ciclos de vida, através do uso de diversas classes de métricas, como o tamanho, a estrutura do fluxo de controle, a modularidade e o fluxo de informação, a estrutura de dados, a eficiência e a complexidade de algoritmos, e as medidas gerais de complexidade. Seus principais objetivos são [27]:

o Elucidar o relacionamento entre fornecedores e clientes, através de procedimentos de definição, permitindo concessões de um selo de qualidade, quando um produto possui um determinado conjunto de atributos de qualidade;

o Desenvolver tecnologias de avaliação eficientes e efetivas, para a concessão do selo de certificação;

o Promover a divulgação de modernas tecnologias de engenharia de software, para que sejam usadas durante o desenvolvimento de produtos de software.

• O Modelo Rocha [28]: define a qualidade de produtos de software a partir dos seguintes conceitos:

o Objetivos de qualidade: são as propriedades gerais que o produto deve possuir; o Fatores de Qualidade: determinam a qualidade na visão dos diferentes usuários do

produto. Podem ser compostos por subfatores, quando estes não definem completamente, por si só, um único objetivo;

o Critérios: são atributos primitivos, possíveis de serem avaliados;

o Processos de Avaliação: determinam o processo e os instrumentos a serem utilizados, de forma a se medir o grau de presença, no produto, de um determinado critério;

CAPÍTULO 2: QUALIDADE DE SOFTWARE

o Medidas: são os resultados da avaliação do produto, segundo os critérios;

o Medidas Agregadas: são os resultados da agregação das medidas obtidas ao se avaliar de acordo com os critérios, além de quantificarem os fatores.

Os objetivos de qualidade são atingidos através dos fatores de qualidade, que podem ser compostos por subfatores. Objetivos, fatores e subfatores não são diretamente mensuráveis e só podem ser avaliados através de critérios. Um critério é um atributo primitivo. Um único critério não descreve completamente um determinado fator ou subfator. Da mesma maneira, nenhum fator define completamente um objetivo.

Neste trabalho iremos empregar a avaliação da qualidade de produtos de software que autenticam usuários a partir de características físicas e/ou comportamentais (biométricas). O modelo que usaremos será baseado no padrão ISO, conforme apresentaremos na próxima seção.

2.4. O Padrão ISO

A International Organization for Standardization (ISO) é uma organização não-governamental estabelecida em 1947. Sua missão é promover o desenvolvimento de atividades de normatização a nível mundial. O seu trabalho resulta em acordos entre países que são publicados como Normas Internacionais. Qualquer país pode participar dos trabalhos da ISO em Comitês Técnicos ou Subcomitês. A participação pode ser do tipo P, quando há atuação ativa nos trabalhos com obrigação de voto, ou do tipo O, quando o país participa como observador, recebendo cópias dos documentos, participando das reuniões e apresentando comentários, mas sem o direito de voto [3].

A International Electrotechnical Commission (IEC), fundada em 1906, é a organização mundial que publica normas internacionais relacionadas com eletricidade, eletrônica e áreas relacionadas, e atualmente conta com a participação de mais de 50 países.

A ISO e a IEC são as duas organizações internacionais mais importantes para o setor de

software. O padrão ISO apresentado nesta seção está relacionado com a avaliação de qualidade de software, a partir de uma abordagem nas normas ISO/IEC 14598 [29] e 9126 [30]. Estas normas

são produzidas por um comitê conjunto, o Joint Technical Committees (JTC) na área de Tecnologia 22

CAPÍTULO 2: QUALIDADE DE SOFTWARE

da Informação (TI). Além disto, apresentaremos também a norma ISO/IEC 12119 responsável pelo controle de qualidade em pacotes de software. As normas ISO/IEC 14598-1, 9126 e 12119 foram base para o desenvolvimento de um modelo hierárquico para a avaliação de pacotes de

software biométricos. Cada uma das normas mencionadas e sua respectiva composição são

mostradas na figura 2.1. Nos tópicos a seguir, cada uma delas será explicada com mais detalhes.

ISO/IEC 9126 ISO/IEC 14598 ISO/IEC 12119

ISO/IEC 14598-1 Visão Geral ISO/IEC 14598-2 Planejamento/Gerenciamento ISO/IEC 14598-3 Processo de Desenvolvimento ISO/IEC 14598-4 Processo de Aquisição ISO/IEC 14598-5

Processo para Avaliadores

ISO/IEC 14598-6

Documentação dos Módulos de Avaliação Processo de Avaliação Qualidade de Pacotes de Software NBR ISO/IEC 12119 ISO/IEC 9126-1 Características da Qualidade de Software ISO/IEC 9126-2 Métricas Externas ISO/IEC 9126-3 Métricas Internas ISO/IEC 9126-4 Qualidade em Uso Definições de Qualidade NBR 13596

Figura 2.1: Normas ISO e suas normas componentes para avaliação de qualidade de software.

CAPÍTULO 2: QUALIDADE DE SOFTWARE

2.4.1 Norma ISO/IEC 14598

Esta norma determina como proceder em um processo de avaliação de qualidade. O processo de avaliação é dividido em 6 normas que padronizam as etapas deste processo. Faremos uma abordagem mais completa na norma 14598-1, pois esta norma está orientada para a avaliação de qualidade de produtos de software, enquanto as demais estão relacionadas com a avaliação de qualidade de processos de software e elementos componentes da avaliação, como, por exemplo, os avaliadores, o que está fora do escopo deste trabalho.

O processo de avaliação de qualidade de produtos de software descrito na norma 14598-1 é representado na figura 2.2. Os blocos quadrados à esquerda são as tarefas a serem cumpridas em cada etapa, que são ainda subdivididas em tarefas menores com seus objetivos específicos. Os blocos quadrados à direita contêm as normas adicionais que apóiam o processo avaliativo, cujas características veremos na seção posterior.

Selecionar métricas

Estabelecer níveis de pontuação para as métricas

Estabelecer critérios para julgamento Estabelecer os propósitos da avaliação

Identificar tipo(s) de produto(s) a ser(em) avaliado(s)

Especificar modelo de qualidade

Obter as medidas

Comparar com critérios Julgar os resultados Especificar a Avaliação Estabelecer Requisitos de Avaliação Executar a Avaliação 9126-2: Métricas Externas 9126-3: Métricas Internas 14598-6: Módulos de Avaliação 9126-1: Características de Qualidade

Produzir o plano de avaliação Projetar a

Avaliação

Figura 2.2: Processo de Avaliação de Qualidade de Software.

CAPÍTULO 2: QUALIDADE DE SOFTWARE

Cada tarefa descrita na figura 2.2 é sucintamente descrita abaixo [3]:

• Estabelecer o propósito da avaliação – o propósito da avaliação é apoiar diretamente o desenvolvimento e a aquisição de software que atenda às necessidades do usuário e do cliente. O objetivo final é assegurar que o produto forneça a qualidade requerida e que ele atenda as necessidades implícitas e explícitas do usuário.

• Identificar tipo(s) de produto(s) a ser(em) avaliado(s) – o tipo de produto de software, quer seja um produto em desenvolvimento ou final a ser avaliado, dependerá do estágio no seu ciclo-de-vida e do propósito da avaliação. O objetivo é que o produto, ao ser utilizado pelo usuário, atenda suas necessidades implícitas e explícitas.

• Especificar o modelo de qualidade – A primeira etapa na avaliação de software é selecionar as características de qualidade relevantes utilizando um modelo de qualidade. Os modelos de qualidade geralmente representam a totalidade dos atributos de qualidade de software classificados em uma estrutura de árvore hierárquica. O nível mais alto é constituído por características de qualidade ou elementos resultantes de uma classificação do produto, enquanto o nível mais baixo é composto pelos atributos primitivos de qualidade de software. Neste contexto, a ISO/IEC 9126-1 fornece um modelo de propósito geral, definindo seis amplas características: funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e portabilidade. Este modelo será explicado na próxima seção com mais detalhes.

• Selecionar métricas – a forma pela qual características ou componentes do produto de

software têm sido definidas não permite sua medição direta. Portanto, é necessário

estabelecer métricas que se correlacionem às características. Todo atributo quantificável que se correlacione com uma característica ou componente do produto e interaja com o seu ambiente pode ser definido como uma métrica. É importante que as medições de um produto possam ser economicamente viáveis e fáceis de aplicar e utilizar. As normas ISO/IEC 9126-2 e 9126-3 definem métricas de qualidade, enquanto a norma 14598-6 define módulos de avaliação, cujo objetivo é a utilização das métricas definidas nas

CAPÍTULO 2: QUALIDADE DE SOFTWARE

normas 9126-2 e 9126-3 de forma eficiente e que permita a troca de informações sobre avaliações anteriores, garantindo assim que uma avaliação seja reproduzível e imparcial. • Estabelecer níveis de pontuação para as métricas – as particularidades quantificáveis de

um produto podem ser medidas qualitativamente usando-se métricas de qualidade. O resultado, isto é, o valor medido é mapeado numa escala. Este valor, por si só, não mostra o nível de qualidade do produto e nem de satisfação dos requisitos. Para isto, a escala precisa ser dividida em faixas correspondentes aos diversos graus de satisfação dos requisitos. Assim, o valor medido é traduzido em um grau de satisfação que determina o nível de qualidade do requisito avaliado.

• Estabelecer critérios para o julgamento – para julgar a qualidade de um produto, o resultado da avaliação de cada característica precisa ser sintetizado. Convém que o avaliador prepare um procedimento para tanto, com critérios diferentes para características de qualidade diferentes, onde cada característica ou componente do produto poderá ser representado em termos mensuráveis ou ser uma combinação ponderada de suas subcaracterísticas ou subcomponentes. O procedimento normalmente incluirá outros aspectos como tempo e custo, os quais contribuem para o julgamento da qualidade de um produto de software em um ambiente particular.

• Produzir o plano de avaliação – o plano de avaliação descreve os métodos de avaliação e o cronograma das ações do avaliador, que podem ser encontradas nas normas ISO/IEC 14598-3, 14598-4 e 14598-5.

• Obter as medidas – para medição, as métricas selecionadas são aplicadas ao produto de

software. Como resultado, obtém-se os valores nas escalas das métricas.

• Comparar com critérios – os valores medidos e obtidos na etapa anterior são comparados com critérios de qualidade pré-determinados.

CAPÍTULO 2: QUALIDADE DE SOFTWARE

• Julgar os resultados – o julgamento é a etapa final do processo de avaliação do software, onde um conjunto de níveis pontuado é resumido. O resultado é uma declaração de quanto o produto de software atende aos requisitos de qualidade. Então, a qualidade resumida é comparada com outros aspectos como tempo e custo. Finalmente, uma decisão será tomada baseada nos critérios de qualidade. O resultado é uma decisão quanto à aceitação ou rejeição, ou quanto à liberação ou não do produto.

Esta norma foi utilizada para que pudéssemos estabelecer uma base para definirmos os passos de um processo avaliativo de um produto de software biométrico. Estes passos foram adequados aos propósitos e objetivos desta dissertação e particularizados à realidade desses tipos de produto.

2.4.2 Norma ISO/IEC 9126

A estrutura da ISO/IEC 9126 possui também um conjunto de documentos técnicos que definem características de qualidade de software e seus indicadores, orientando o planejamento e a execução da avaliação [22]:

• ISO/IEC 9126-1: fornece características e subcaracterísticas de qualidade, sendo uma norma essencialmente de definições. As características e subcaracterísticas presentes nessa norma são mostradas e definidas na tabela 2.2.

• ISO/IEC 9126-2: define métricas externas para a medição de características e subcaracterísticas de qualidade da norma ISO/IEC 9126-1. Estas métricas referem-se a medições indiretas de um produto de software, a partir da medição do comportamento do sistema computacional do qual o produto faz parte.

• ISO/IEC 9126-3: define métricas internas para a medição de um produto de software. Estas métricas referem-se a medições diretas de um produto, a partir de suas características internas, sem que seja necessária a execução do programa.

CAPÍTULO 2: QUALIDADE DE SOFTWARE

Tabela 2.2: Características e Subcaracterísticas de software – ISO/IEC 9126

Qualidade de Produtos de Software – ISO/IEC 9126 Características Subcaracterísticas

Adequação: existência de um conjunto de funções apropriadas para as tarefas requeridas.

Acurácia: produção de resultados ou efeitos corretos.

Interoperabilidade: habilidade de interação do produto de software m outros produtos.

co

Conformidade: o produto está de acordo com as convenções, as normas e os regulamentos estabelecidos.

Funcionalidade: as funções e propriedades específicas de um produto, que satisfazem as necessidades do usuário.

Segurança: aptidão para evitar acessos não-autorizados a programas e dados.

Maturidade: estado de maturação do software, detectado por sua baixa freqüência de falhas.

Tolerância a Falhas: o nível de desempenho é mantido, quando orrem falhas.

oc Confiabilidade: o produto de software é capaz de manter seu nível de desempenho, ao longo do tempo, nas condições

estabelecidas. Recuperabilidade: existem mecanismos que restabelecem e restauram os dados após a ocorrência de falhas.

Inteligibilidade: facilidade de entendimento dos conceitos utilizados o produto de software.

n

Apreensibilidade: facilidade de aprendizado do software. Usabilidade: esforço necessário

para a utilização do sistema, baseado em um conjunto de implicações e de condições do

usuário. Operacionalidade: faculdade de operar e controlar operações pertinentes ao software. Comportamento no tempo:

processamento. refere-se ao tempo de resposta de Eficiência: os recursos e os

tempos envolvidos são compatíveis com o nível de desempenho requerido pelo software.

Comportamento dos recursos: relaciona-se com a quantidade dos recursos empregados.

Analisabilidade: característica de ser possível diagnosticar deficiências e causas de falhas.

M

facilodificabilidade: característica que o produto deve ter de forma a itar modificações e remoções de defeitos. Estabilidade: ausência de riscos ou ocorrências de defeitos inesperados no software.

Manutenibilidade: refere-se ao esforço necessário para a realização de alterações específicas no produto de software.

Testabilidade: facilidade de o produto ser testado.

Adaptabilidade: facilidade de o produto poder ser adaptado a novos ambientes.

Instalabilidade: facilidade de instalação do produto de software. Conformidade com padrões de portabilidade: o produto está em conformidade com padrões ou convenções de portabilidade.

Portabilidade: facilidade de o software poder ser transferido de um ambiente operacional para outro.

Substituibilidade: o produto de software pode ser substituído por outro, sem grandes esforços.

A ISO/IEC 9126 define um modelo hierárquico top-down contendo referências necessárias para a realização de comparações ou medições. Em um modelo hierárquico top-down a ordem de

CAPÍTULO 2: QUALIDADE DE SOFTWARE

importância hierárquica dar-se-á de cima para baixo, enquanto a avaliação dos elementos e de suas respectivas medições dar-se-á de baixo para cima, conforme ilustrado na figura 2.3. No nível mais alto encontram-se as características previamente definidas na tabela 2.2. As definições apresentadas na tabela 2.2 mostram que elas evitam a possibilidade de combinar ou utilizar inadequadamente as características [31]. Cada característica é subdividida em subcaracterísticas, de forma a detalhar o ponto de vista quando analisando um produto de software, e localiza-se um nível abaixo na hierarquia. Porém, as subcaracterísticas não podem realmente ser mensuradas, porque não possuem acurácia, e, portanto, elas devem ser subdivididas em atributos. Para cada tipo diferente de produto de software e subcaracterísticas, os atributos devem ser identificados de acordo com o propósito da avaliação.

Hierarquia

Avaliação

Características

Subcaracterísticas

Atributos

Figura 2.3. O modelo hierárquico top-down ISO/IEC 9126

Apesar da grande relevância da ISO/IEC 9126, há dificuldades em adequar sua aplicabilidade na avaliação prática de produtos de software [32], pois as características de qualidade, por ela determinadas, não são diretamente mensuráveis [33]. Portanto, para que se obtenha a qualidade desejada de produtos de software, fazem-se necessários modelos que viabilizem a avaliação de qualidade destes produtos: não é mais tolerado o uso de modelos artesanais na elaboração de programas, pois é necessário assegurar um nível mais elevado de qualidade nos produtos de software. Para atender as necessidades de avaliação de um produto de software biométrico, tornou-se necessário, a partir do modelo hierárquico ISO/IEC 9126, montar um novo modelo que suportasse os conceitos envolvidos nestes produtos e mensurá-los, identificando seus pontos fortes e fracos.

CAPÍTULO 2: QUALIDADE DE SOFTWARE

2.4.3 Norma ISO/IEC 12119

Esta norma internacional é aplicada a pacotes de software. Um pacote de software é um conjunto completo e documentado de programas fornecido a vários usuários para uma aplicação ou função genérica [34], ou seja, é um software ou sistema em conjunto com suas documentações. Esta norma estabelece:

• Requisitos para pacotes de software (requisitos de qualidade);

• Instruções de como testar um pacote de software de acordo com estes requisitos (instruções para testes, em particular, para testes executados por terceiros).

Esta norma trata somente de como os pacotes de software são ofertados e entregues. Ela não abrange seus processos de produção, nem atividades ou produtos intermediários. Esta norma tem como um de seus possíveis alvos entidades que desejam estabelecer um esquema de certificação de terceiros, que é o desejado nesta dissertação.

Os requisitos de qualidade apresentados nessa norma são, em resumo [34]:

• O requisito de que cada pacote de software tenha uma descrição do produto e uma documentação do usuário. A descrição do produto define o produto em si e faz parte de sua documentação, além de prover informações sobre a documentação do usuário, sobre o programa e, se houver, sobre os dados. Esta documentação deve estar disponível para

Documentos relacionados