Norma ISO/IEC 9126: Avaliação de Qualidade de Produtos de Software



Documentos relacionados
Auditoria e Qualidade de Software ISO/IEC 9126 Engenharia de Software Qualidade de Produto

Qualidade de Software. Prof.: Ivon Rodrigues Canedo. PUC Goiás

GARANTIA DA QUALIDADE DE SOFTWARE

IC-UNICAMP IC-UNICAMP

Qualidade de Software. Profa. Cátia dos Reis Machado

ISO Aécio Costa

Modelos de Qualidade de Produto de Software

MODELO CMM MATURIDADE DE SOFTWARE

Prof. Dr. Ivanir Costa. Unidade III QUALIDADE DE SOFTWARE

Atividade da gerência da qualidade

Qualidade de. Software. Definições. Qualidade do Produto ISO Processo de. Software. Modelo de Processo de. Software CMM SPICE ISO 12207

QUALIDADE DE SOFTWARE

QUALIDADE DE SOFTWARE AULA N.7

Padrões de Qualidade de Software e Métricas de Software

Padrões de Qualidade de Software

CHECK - LIST - ISO 9001:2000

Qualidade de Software

PEDRO HENRIQUE DE OLIVEIRA E SILVA MESTRE EM MODELAGEM MATEMÁTICA E COMPUTACIONAL PEDROHOLI@GMAIL.COM CMM E CMMI

Introdução Fatores de Qualidade Garantia de Qualidade Rivisões de Software Conclusão. Qualidade. Plácido A. S. Neto 1

NORMAS ISO E SUA IMPORTÂNCIA NA PRODUÇÃO DE SOFTWARE

Qualidade de Produto de Software

Qualidade de software

Qualidade de Software. Profa. Cátia dos Reis Machado

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004

Projeto 2.47 QUALIDADE DE SOFTWARE WEB

CES-32 e CE-230 Qualidade, Confiabilidade e Segurança de Software. Conceitos de Qualidade. CURSO DE GRADUAÇÃO e DE PÓS-GRADUAÇÃO DO ITA

Governança de TI. ITIL v.2&3. parte 1

Abordagem de Processo: conceitos e diretrizes para sua implementação

FACULDADE SENAC GOIÂNIA

21. Qualidade de Produto ou Qualidade de Processo de Software?

ENGENHARIA DE SOFTWARE I

3 Qualidade de Software

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Introdução à Qualidade de Software. Profº Aldo Rocha

Qualidade de Processo de Software Normas ISO e 15504

Introdução Visão Geral Processos de gerenciamento de qualidade. Entradas Ferramentas e Técnicas Saídas

Universidade Paulista

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Qualidade na gestão de projeto de desenvolvimento de software

Implantação de um Processo de Medições de Software

Qualidade de software

Engenharia de Software Qualidade de Software

pacotes de software na forma em que são É importante salientar que não é objetivo do software, suas atividades e produtos

CMM - Capability Maturity Model

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

ISO 9001:2008. Alterações e Adições da nova versão

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

MUDANÇAS NA ISO 9001: A VERSÃO 2015

ANÁLISE DOS REQUISITOS NORMATIVOS PARA A GESTÃO DE MEDIÇÃO EM ORGANIZAÇÕES

Qualidade de Software: Visão Geral

MASTER IN PROJECT MANAGEMENT

Engenharia de Software

PR 2 PROCEDIMENTO. Auditoria Interna. Revisão - 2 Página: 1 de 9

Copyright Proibida Reprodução. Prof. Éder Clementino dos Santos

NORMA ISO/IEC Isac Aguiar isacaguiar.com.br

Políticas de Qualidade em TI

Fábrica de Software 29/04/2015

Qual a diferença entre certificação e acreditação? O que precisamos fazer para obter e manter a certificação ou acreditação?

Requisitos de Software

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

APOSTILAS: NORMAS; ABNT NBR ISO; MPS BR

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Sistema de Gestão da Qualidade

O que é CMMI? Base do CMMI. Melhorando o processo é possível melhorar-mos o software. Gerais. Processo. Produto

ISO/IEC 12207: Gerência de Configuração

QUALIDADE DE SOFTWARE

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

SISTEMA DE GESTÃO AMBIENTAL ABNT NBR ISO 14001

CAPABILITY MATURITY MODEL FOR SOFTWARE. Eduardo Mayer Fagundes

Análise do Ambiente estudo aprofundado

Gerência de Projetos Prof. Dr. Sandro Ronaldo Bezerra Oliveira

Processos de gerenciamento de projetos em um projeto

Módulo 2. Estrutura da norma ISO 9001:2008 Sistemas de Gestão da Qualidade Requisitos 0, 1, 2, 3 e 4/4, Exercícios

agility made possible

Gestão da Qualidade em Projetos

C.M.M. Capability Maturity Model Modelo de Maturidade da Capacidade

Fundamentos de Teste de Software

PMONow! Serviço de Implantação de um Escritório de Projetos

MODELO SPICE Software Improvement and Capacibilty Determination Avalia o software com foco na melhoria de seus processos (identifica pontos fracos e

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Sistemas de Gestão da Qualidade. Introdução. Engenharia de Produção Gestão Estratégica da Qualidade. Tema Sistemas de Gestão da Qualidade

Feature-Driven Development

Gerenciamento de Níveis de Serviço

Gerenciamento de Serviços de TI ITIL v2 Módulo 1 Conceitos básicos

Melhorias de Processos de Engenharia de Software

Gerenciamento de Problemas

Universidade de Brasília Faculdade de Economia, Administração, Contabilidade e Ciência da Informação e Documentação Departamento de Ciência da

Gerenciamento de Incidentes

Qualidade de Software. Anderson Belgamo

OS 14 PONTOS DA FILOSOFIA DE DEMING

Engenharia de Software

Transcrição:

Departamento de Computação Trabalho de Conclusão de Curso CIBELE CRISTINA PELIZER SODRÉ Norma ISO/IEC 9126: Avaliação de Qualidade de Produtos de Software Londrina 2006

CIBELE CRISTINA PELIZER SODRÉ Norma ISO/IEC 9126: Avaliação de Qualidade de Produtos de Software Trabalho de Conclusão de Curso desenvolvido durante o 4º ano do Curso de Graduação em Ciência de Computação como requisito parcial à obtenção do título de Bacharel. Orientadora: Katia Romero Felizardo Londrina 2006

COMISSÃO EXAMINADORA Profa. Ms. Katia Romero Felizardo UEL Prof. Dr. Rodolfo Miranda de Barros UEL Profa. Helen Cristina de Mattos Senefonte UEL 14

DEDICATÓRIA À minha mãe, que sempre esteve presente nas horas em que eu precisei e não precisei.

AGRADECIMENTOS Agradeço a toda a minha família pela estrutura que me foi dada, sendo assim possível minha formação de vida. Agradeço à professora Katia Romero Felizardo por todo apoio, incentivo e paciência dados no decorrer deste trabalho, possibilitando o desenvolvimento do mesmo da melhor maneira possível. Agradeço aos professores do Departamento de Computação da UEL e de outros departamentos pela formação acadêmica proporcionada. Agradeço aos amigos. Àqueles poucos, porém verdadeiros. Especialmente aos que estiveram comigo durante este curso e entendem tudo que passei. Como já diz uma conhecida frase, amigos são a família que podemos escolher. Agradeço ao meu namorado, amigo e companheiro, que nos últimos três anos compartilhou comigo as alegrias e tristezas. E que sempre suporta os meus momentos mais nervosos e estressantes com uma calma impressionante. E está sempre ao meu lado, independente das escolhas que eu faça. Agradeço, enfim, a todos aqueles que direta ou indiretamente prestaram apoio, amizade e confiança e contribuíram para esse momento de vida pelo qual estou passando. E à minha Mãe (com M maiúsculo), novamente. Porque sem seu amor incondicional, as coisas seriam bem mais difíceis.

LISTA DE TABELAS Tabela 1 Métricas Externas de Adequação...36 Tabela 2 Métrica Externa de Acurácia...36 Tabela 3 Métricas Externas de Interoperabilidade...37 Tabela 4 Métricas Internas de Adequação...38 Tabela 5 Métricas Internas de Acurácia...39 Tabela 6 Métricas Internas de Interoperabilidade...40 Tabela 7 Métricas de Efetividade...41 Tabela 8 Métricas de Produtividade...42 Tabela 9 Métricas de Segurança...43

LISTA DE SIGLAS E ABREVIATURAS ABNT: Associação Brasileira de Normas Técnicas CMM: Capability Maturity Model CMMI: Capability Maturity Model Integrated IEC: International Electrotechnical Comission ISO: International Organization for Standardization SEI: Software Engineering Institute SPICE: Software Process Improvement and Capability determination TI: Tecnologia da Informação

LISTA DE FIGURAS Figura 1 Nível 1 do CMM...16 Figura 2 Nível 2 do CMM...16 Figura 3 Nível 3 do CMM...17 Figura 4 Nível 4 do CMM...17 Figura 5 Nível 5 do CMM...18 Figura 6 Representação da norma ISO/IEC 14598...24 Figura 7 Representação da norma ISO/IEC 9126 e suas representações...27 Figura 8 Características e Subcaracterísticas de Qualidade Externa e Interna...28 Figura 9 Divisão das Características...32 Figura 10 Características de Qualidade em Uso...33 Figura 11 Relação entre Métricas Internas, Externas e de Qualidade em Uso...35 Figura 12 Valor satisfatório...46

SUMÁRIO INTRODUÇÃO...11 1 Introdução à Qualidade...12 1.1 Histórico de Qualidade...12 2 Qualidade de Processo de Software...15 2.1 CMM...15 2.2 ISO/IEC 12207...18 2.3 SPICE...19 2.4 Família ISO/IEC 9000...21 3 Qualidade de Produto de Software...23 3.1 ISO/IEC 14598...23 3.2 ISO/IEC 12119...25 4 A Norma ISO/IEC 9126...26 4.1 ISO/IEC 9126-1: Modelo de Qualidade...27 4.1.1 Modelo de Qualidade para Qualidade Interna e Externa...28 4.1.2 Modelo de Qualidade para Qualidade em Uso...33 4.2 Métricas...34 4.2.1 ISO/IEC 9126-2: Métricas Externas...35 4.2.2 ISO/IEC 9126-3: Métricas Internas...37 4.2.3 ISO/IEC 9126-4: Métricas de Qualidade em Uso...40 5 Processo de Avaliação...45 5.1 Definição de Requisitos de Qualidade...45 5.2 Preparação da Avaliação...45 5.3 Procedimento da Avaliação...46 5.4 Um Exemplo de Aplicação...47 CONCLUSÃO...49 REFERÊNCIAS BIBLIOGRÁFICAS...50

RESUMO Este trabalho aborda a Qualidade de Software,detalhando normas e padrões de Qualidade de Processo de Software e Qualidade de Produto de Software. O foco do trabalho é a descrição da norma ISO/IEC 9126, que é uma norma de Qualidade de Produto de Software, e suas divisões. Palavras-chave: Qualidade de Software, ISO/IEC 9126.

ABSTRACT This work approaches the Software Quality, detailing norms and standards of Software Process Quality and Software Product Quality. The focus of the work is the description of norm ISO/IEC 9126, which is a norm of Software Product Quality, and its divisions. Keywords: Software Quality, ISO/IEC 9126.

INTRODUÇÃO A área de TI se torna ampla e abrangente a passos largos. Tendo isso em vista, espera-se que os produtos resultantes dessa área atendam aos mais diversos tipos de usuários. Para que as necessidades de tais usuários sejam satisfeitas, é imprescindível que os produtos tenham qualidade. Para satisfazer os usuários de software, foram criadas algumas normas. Para assegurar qualidade no desenvolvimento de software, há as normas de Qualidade de Processo de Software, como por exemplo, a ISO/IEC 9000, a ISO/IEC 12207, o modelo de maturidade CMM e o SPICE. Existem também as normas que avaliam a Qualidade do Produto de Software, que são a ISO/IEC 9126, ISO/IEC 14598 e a ISO/IEC 12207, para avaliar os produtos já finalizados. Este trabalho abordará o tema Qualidade de Software de maneira abrangente e, ao final, será focada a norma de Qualidade de Produto de Software ISO/IEC 9126. No Capítulo 1, será feita uma breve introdução acerca de Qualidade e também será apresentado um histórico para um melhor entendimento sobre a importância da Qualidade de produtos no decorrer das décadas, apresentando assim, a evolução desse conceito, até a maneira como isso é abordado atualmente. No Capítulo 2, são detalhadas algumas normas de melhoria de Qualidade de Processo de Software. No Capítulo 3, é feita a descrição de normas que baseiam a avaliação de Qualidade de Produto de Software. O Capítulo 4 é o foco principal deste trabalho e descreve a norma ISO/IEC 9126 e suas divisões. No Capítulo 5, o Processo de Avaliação de um software é explicado e é dado um exemplo de uso da norma ISO/IEC 9126.

1 INTRODUÇÃO À QUALIDADE A Qualidade de Software é um tema amplamente discutido da Engenharia de Software. Para um maior entendimento da importância disso, a seguir, será feita uma breve introdução sobre Qualidade. O conceito de qualidade é definido como sendo um conjunto de características de todo produto e serviço ou relação planejada, praticada e verificada, visando superar as expectativas de satisfação das pessoas envolvidas 1 [28] ou a totalidade das características de uma entidade que lhe confere a capacidade de satisfazer necessidades explícitas e implícitas do cliente [22]. Entende-se por entidade tanto o produto como o serviço. Necessidades explícitas são as condições e objetivos pelo produto expressos na definição de requisitos, que definem as condições em que o produto deve ser utilizado, seus objetivos, funções e o desempenho esperado. Entende-se por necessidades implícitas aquelas que não estão expressas nos documentos do produtor, mas que são necessárias para o usuário, entre elas as diferenças entre os usuários, a evolução no tempo, as implicações éticas e questões de segurança. Qualidade é um termo associado à definição de conformidade às especificações e à visão de satisfação do cliente, sendo que prazos, pontualidade de entrega e flexibilidade também são fatores relevantes para avaliação. 1.1 Histórico de Qualidade O primeiro grande marco da história da qualidade nos tempos modernos foi a Revolução Industrial. Nessa época houve um grande crescimento no número de indústrias, o que criou a concorrência entre elas e fez nascer um processo de melhoria contínua de produtos. A partir da década de 20, a produção industrial passou a ter um processo de qualidade, com a finalidade de impedir que chegassem produtos com 1 Pessoas envolvidas ou partes interessadas: indivíduo ou grupo interessado ou afetado pelo desempenho ambiental de um sistema de produto ou pelos resultados da avaliação do ciclo de vida

defeito às mãos dos clientes. Como as fábricas já produziam em grande quantidade, era impossível verificar a qualidade individual de cada peça, como é feito no produto artesanal. Esse novo processo de qualidade consistia em controle estatístico da produção, que analisava algumas peças aleatoriamente e fazia a medição estatística dessas peças. Quanto mais parecidas e aproximadas do padrão ideal estivessem as medições, maior qualidade possuía aquela linha de produção. Na década de 40, os principais órgãos ligados à qualidade foram criados, como a ABNT e a ISO. Durante a Segunda Guerra Mundial, as técnicas de produção foram melhoradas para a fabricação de materiais bélicos, pois é esperado que este tipo de material apresente taxa de defeito zero 2. O impulso recebido pelas indústrias manteve-se no pós-guerra e foi criado um controle de processos envolvendo a produção desde o projeto até o acabamento. A partir do controle de processos foi criado um novo conceito, a garantia de qualidade, que é a demonstração de que os produtos e serviços possuem qualidade perante clientes e público. Nessa época, as indústrias que mais estavam se desenvolvendo eram a automobilística e aeronáutica. Já havia também computadores digitais para uso restrito a meios militares e acadêmicos. Nos anos 60, houve uma mudança no ambiente de negócios devido à saturação dos mercados, a demanda por produtos diferenciados, adoção da alta tecnologia nos processos produtivos, redução das barreiras do comércio internacional e a intensificação da competição internacional. Como conseqüência, empresas com produtos diferenciados e preços competitivos e acessíveis assumiram a liderança do mercado.[28] Nessa época, os computadores se tornaram mais acessíveis e cada vez mais pessoas passaram a usá-los. Com isso começou a se pensar em Qualidade de Software. Atualmente a satisfação do cliente e a gestão empresarial moderna são as bases da qualidade, mas os bons resultados ainda dependem do uso correto das metodologias pelos desenvolvedores. 2 Defeito Zero: Atitude de prevenção de defeitos através da compreensão e correspondência às exigências de um trabalho ou tarefa o tempo todo. Padrão de desempenho proposto por Philip B. Crosby em que o lema é "fazer certo desde a primeira vez"; sua meta é buscar a excelência pela prevenção de defeitos. Significa que a qualquer momento, a mais alta prioridade é eliminar os erros antes de escrever qualquer código novo. 13

O conceito de Qualidade de Software surgiu devido à necessidade de organização e padronização do desenvolvimento de softwares, que não tinham planejamento nem norma de qualidade estabelecidos. A única forma de obter um sistema eficiente 3 era através do planejamento feito pelo próprio programador, entretanto esses sistemas tinham manutenção complicada quando realizada por outra pessoa e não eram completamente confiáveis. Em conseqüência disso, foram criados a engenharia de software e os primeiros padrões de qualidade. A Engenharia de Software busca otimizar a construção do software e avaliar os produtos de software procurando facilitar o desenvolvimento, o uso, a adaptação e manutenção, mas também tornando o produto acessível e com custo reduzido. A melhoria da Qualidade de Software pode ser dividida em melhoria de qualidade de processo de software e melhoria de qualidade de produto de software. As normas para obtenção de qualidade de processo de software fazem um estudo dos requisitos necessários ao cliente, cria um ciclo de vida para os processos e, por final, realiza a instalação e manutenção do mesmo. Já as normas para qualidade de produto de software possuem características que um produto com qualidade deve ter, modo de medir essas características de qualidade e descrições para se fazer a avaliação do produto. 3 Eficiente: os objetivos são obtidos com economia de meios. 14

2 QUALIDADE DE PROCESSO DE SOFTWARE Processo de software é um conjunto de atividades e resultados associados que levam à produção de um produto de software. Esse processo pode envolver o desenvolvimento de software desde o início, embora, cada vez mais, ocorra o caso de um software novo ser desenvolvido mediante a expansão e a modificação de sistemas já existentes.[21] O processo de software pode ser dividido em 3 partes: definição, desenvolvimento e manutenção. A fase da definição busca definir o que o sistema vai fazer, sua interface e restrições. Já a fase de desenvolvimento define a arquitetura do sistema, a linguagem de programação a ser usada e como serão realizados os testes. Por fim, na fase da manutenção, podem ocorrer correções, mudanças e adaptações do sistema dependendo da necessidade do cliente. Normas e padrões de qualidade de processo de software foram criados para auxiliar na obtenção de qualidade do produto de software, pois é através da melhoria do processo de software que é obtida a qualidade do produto. Algumas das principais normas serão descritas a seguir. 2.1 CMM O CMM (Capability Maturiry Model) foi criado em 1991 e procurava padronizar a qualidade dos softwares desenvolvidos pela força aérea americana quando foi criado pela SEI.[2] [24] [25] O modelo é baseado nos princípios de qualidade total e no amadurecimento gradativo do processo de desenvolvimento do software dentro da empresa. Cada instituição é avaliada em um dos cinco níveis de maturidade, que estão divididos em áreas-chave dos temas que são abordados. As empresas que estão no nível 1, que é chamado de Inicial, podem obter softwares de alta qualidade dependendo do desempenho dos desenvolvedores, mas a substituição da equipe pode prejudicar a qualidade. Os problemas maiores são gerenciais pois o processo é como uma caixa preta na visão do gerente, onde entram os requisitos e sai o sistema pronto, como ilustrado na 15

Figura 1. Neste nível não há área-chave. Figura 1 Nível 1 do CMM Fonte: [7] As empresas do nível 2, nível Repetitivo, acompanham e documentam os métodos de gerenciamento para assegurar o cumprimento de prazos e custos. As práticas bem-sucedidas em outros projetos podem ser reaproveitadas. Nessa etapa, é possível visualizar o processo em certos pontos entre pequenas caixas-pretas, como visto na Figura 2. As áreas-chave são: Gerenciamento de requisitos; Planejamento de projeto de software; Acompanhamento de projeto de software; Gerenciamento de subcontrato de software; Garantia de qualidade de software; Gerenciamento da configuração de software. Figura 2 Nível 2 do CMM Fonte: [7] No nível 3 ou nível Definido, o processo de software é documentado, integrado e padronizado em processos padrão para a empresa e todos os projetos usam uma versão aprovada e adaptada para o seu 16

desenvolvimento e manutenção. A Figura 3 mostra que neste nível já é possível enxergar o que há dentro das caixas-pretas. Há sete áreas-chave: Enfoque no processo da organização; Definição do processo da organização; Programa de treinamento; Gerenciamento integrado de software; Engenharia de produto de software; Coordenação intergrupos; Revisão. Figura 3 Nível 3 do CMM Fonte: [7] No nível 4, também conhecido como nível Gerenciado, tanto o processo quanto o produto de software são avaliados quantitativamente e avaliados por medições detalhadas, portanto o gerente tem bases para tomar decisões. As medições fornecem subsídios para atuar no próprio processo, como pode ser observado na Figura 4. Suas áreas-chave são: Gerenciamento quantitativo do processo; Gerenciamento da qualidade de software. Figura 4 Nível 4 do CMM Fonte: [7] 17

A melhoria contínua do processo pertence ao nível 5 ou nível Otimizado. Essa melhoria pode ocorrer devido à realimentação quantitativa do processo e a partir de idéias e tecnologias novas, como mostra a Figura 5. As três áreas-chave do nível 5 são: Prevenção de defeito; Gerenciamento de mudanças tecnológicas; Gerenciamento de mudanças no processo. Figura 5 Nível 5 do CMM Fonte: [7] Em 2001, foi lançada uma evolução do CMM, o CMMI, que pode ter duas representações: em estágio e contínua. A representação em estágio é similar à usada no CMM: define um conjunto de áreas de processo para melhoria, distribuídos em níveis de maturidade. A representação contínua permite que uma área de processo específica seja selecionada e a empresa melhore em relação a ela, usando níveis de capacidade para caracterizar a melhoria relacionada a essa área. 2.2 ISO/IEC 12207 A ISO/IEC 12207 teve seu processo de desenvolvimento iniciado em 1989, mas só foi aprovado em 1995. Seu objetivo é ajudar na definição dos papéis dos desenvolvedores de software, de forma a obter uma visão aperfeiçoada 18

para o usuário das operações realizadas. Essa norma propõe processos de ciclo de vida do software organizados em três classes[20]: Processos fundamentais: atendem desde a contratação do sistema até a manutenção do produto, passando por desenvolvimento e operação do mesmo. O ciclo de vida desses processos é composto por processo de aquisição, processo de fornecimento, processo de desenvolvimento, processo de operação e processo de manutenção; Processos de apoio: são empregados para auxiliar na obtenção de qualidade de outros projetos. São eles: processo de documentação, processo de gerência de configuração, processo de garantia de qualidade, processo de verificação, processo de validação, processo de revisão conjunta, processo de auditoria e processo de resolução de problemas; Processos organizacionais: são utilizados fora do domínio do projeto normalmente para a melhoria da organização. Esses processos são processo de gerência, processe de infraestrutura, processo de melhoria e processo de treinamento. 2.3 SPICE O SPICE (Software Process Improvement and Capability determination) ou ISO/IEC 15504 tem como objetivo gerar normas para avaliar processos, com o intuito de melhorar o processo continuamente e determinar sua capacitação.[25] O SPICE foi criado de forma que pudesse ser utilizado por especialistas que trabalham com as normas já existentes, mas sendo mais abrangente que elas. Há duas dimensões definidas nesse modelo: a dimensão de processo e a dimensão de capacidade. A primeira consiste em uma disposição de processos essenciais para a prática da engenharia de software, enquanto a segunda define um modelo de medição que obtenha a capacidade de um processo 19

de atingir seu objetivo. O SPICE tem como base o conceito de níveis de maturidade de processos do CMM e a arquitetura dos processos do ciclo de vida de um software da ISO/IEC 12207. O modelo define seis níveis de capacitação: Nível 0 Incompleto: há uma falha geral em realizar o objetivo do processo. Não existem produtos de trabalho nem saídas do processo facilmente identificáveis; Nível 1 Executado: o objetivo do processo em geral é atingido, embora não necessariamente de forma planejada e controlada. Há um consenso na organização de que as ações devem ser realizadas e quando são necessárias. Existem produtos de trabalho para o processo e eles são utilizados para atestar o atendimento dos objetivos; Nível 2 Gerenciado: o processo produz os produtos de trabalho com qualidade aceitável e dentro do prazo. Isto é feito de forma planejada e controlada. Os produtos de trabalho estão de acordo com padrões e requisitos; Nível 3 Estabelecido: o processo é realizado e gerenciado usando um processo definido, baseado em princípios de Engenharia de Software. As pessoas que implementam o processo usam processos aprovados, que são versões adaptadas do processo padrão documentado; Nível 4 Previsível: o processo é realizado de forma consistente, dentro dos limites de controle, para atingir os objetivos. Medidas da realização do processo são coletadas e analisadas. Isto leva a um entendimento quantitativo da capacitação do processo a uma habilidade de prever a realização; Nível 5 Otimizado: a realização do processo é otimizada para atender às necessidades atuais e futuras do negócio. O 20

processo atinge seus objetivos de negócio e consegue ser repetido. São estabelecidos objetivos quantitativos de eficácia e eficiência para o processo, segundo os objetivos da organização. A monitoração constante do processo segundo estes objetivos é conseguida obtendo feedback quantitativo e o melhoramento é conseguido pela análise dos resultados. A otimização do processo envolve o uso piloto de idéias e tecnologias inovadoras, além da mudança de processos ineficientes para atingir os objetivos definidos. 2.4 Família ISO/IEC 9000 Na década de 80, as empresas utilizam TI em seus processos internos apenas para ter controle de qualidade dos produtos. A partir da década de 90, as instituições passaram a usar a TI em seus processos de negócios, com a finalidade de obter garantia de qualidade de processos. Em vista disso, foram lançadas as normas ISO 9001, 9002 e 9003 em 1987 com o objetivo de garantia de qualidade como requisitos entre clientes e fornecedores. Um ponto forte nessas normas é a flexibilidade, pois elas podem ser adaptadas ou complementadas para atender os requisitos específicos de cada setor produtivo. A ISO 9001 é a norma que abrange o ciclo de vida completo de um produto ou serviço, sendo que na mesma constam os requisitos para garantia de qualidade de produtos e serviços. A ISO 9000-3 foi publicada em 1994 e contém orientações para a aplicação da ISO 9001 em projeto, desenvolvimento, fornecimento, instalação e manutenção de softwares. Ela é dividida em três partes: Estrutura, Atividades do Ciclo de Vida e Atividade de Suporte. A Estrutura apresenta os aspectos organizacionais em relação ao sistema de qualidade. São eles: responsabilidade gerencial, sistema de qualidade, auditoria interna de sistema de qualidade e ação corretiva. As Atividades do Ciclo de Vida são as próprias atividades relativas 21

ao desenvolvimento que são: revisão do contrato, especificação dos requisitos do cliente, planejamento de desenvolvimento, planejamento da qualidade, projeto e implementação, testes e validação, aceitação, reprodução, entrega, instalação e manutenção. Já a Atividade de Suporte dão apoio às atividades de desenvolvimento e são: gerência da configuração, controle da documentação, registros da qualidade, medições, regras, práticas e convenções, ferramentas e técnicas, compras, software produto incluso e treinamento. 22

3 QUALIDADE DE PRODUTO DE SOFTWARE A qualidade de produto de software é baseada em normas que avaliam se o produto satisfaz o cliente e tem fácil manutenção. É o resultado direto das atividades realizadas no processo de desenvolvimento do software. Alguns exemplos de normas de qualidade de produto são as normas ISO/IEC 14598, 12119 e 9126. Essas normas serão expostas na seqüência, destacando-se a norma ISO/IEC 9126, enfoque desse trabalho. 3.1 ISO/IEC 14598 A ISO/IEC 14598 possui um conjunto de guias para orientar e planejar o processo de avaliação de um produto de software, como descrito a seguir e ilustrado na Figura 6: ISO/IEC 14598-1 Visão Geral: contém a estrutura de funcionamento das normas para avaliação da qualidade de produto de software e a definição dos termos técnicos desse modelo. Possui também os conceitos e funcionamento de processo de avaliação de qualquer tipo de software para utilização de pessoas envolvidas em desenvolvimento e uso de tecnologia de avaliação e padronização; ISO/IEC 14598-2 Planejamento e Gerenciamento: são requisitos e guias para suportar funções de avaliação dos produtos de software, que estão relacionados ao desenvolvimento, aquisição, padronização, controle, transferência e realimentação do uso de tecnologias de avaliação; ISO/IEC 14598-3 Processo para Equipe de Desenvolvedores: norma para ser usada durante o desenvolvimento e manutenção do software. Fornece critérios para seleção de indicadores de qualidade, guia para avaliar dados de medição e guia para melhoria do processo 23

de medição; ISO/IEC 14598-4 Processo para Compradores: norma para avaliação de produtos tipo pacote com objetivo de ajudar na aceitação de um produto ou selecionar entre diversos produtos tendo como base as características de qualidade da norma ISO/IEC 9126; ISO/IEC 14598-5 Processo para Avaliadores: possui orientações para a prática da avaliação do produto, definindo as atividades necessárias para analisar os requisitos de avaliação; ISO/IEC 14598-6 Módulo de Avaliação: define a estrutura e o conteúdo da documentação que será usada na descrição dos Módulos de Avaliação. Descreve e desenvolvimento e a validação dos módulos. Figura 6 Representação da norma ISO/IEC 14598 Fonte: [5] 24

3.2 ISO/IEC 12119 A norma ISO/IEC 12119 avalia produtos de software que estão disponíveis no mercado, conhecidos como Pacotes de Software ou Software de Prateleira. Essa norma estabelece os requisitos de qualidade e teste dos Pacotes de Software. O pacote que será testado deve possuir: Descrição do Produto: documento que define as propriedades do produto com o objetivo orientar compradores na avaliação de adequação do produto antes da aquisição do mesmo; Manual do Usuário: conjunto de documentos fornecidos como parte integrante do produto e para a aplicação do mesmo; Programa e Dados: conjunto completo de programas e dados necessários para a aplicação do produto de software e também como parte integrante do mesmo. 25

4 A NORMA ISO/IEC 9126 Em 1991, foi publicada a norma ISO/IEC 9126 contendo características e subcaracterísticas que definem um produto de qualidade. Em 1996, foi lançada sua tradução para o Brasil, chamada NBR 13596. Após as revisões e sucessivas melhorias foram criadas divisões dessa norma: ISO/IEC 9126-1: Modelo de Qualidade; ISO/IEC 9126-2: Métricas Externas; ISO/IEC 9126-3: Métricas Internas; ISO/IEC 9126-4: Métricas de Qualidade em Uso. A norma ISO/IEC 9126-1 apresenta um conjunto de características que definem um modelo de qualidade e podem ser aplicadas a qualquer produto de software. Esse modelo de qualidade é formado por duas partes: o Modelo de Qualidade Interna e Externa (Figura 7a) e o Modelo de Qualidade em Uso (Figura 7b). Para realizar a avaliação das características de qualidade externa são utilizadas as métricas externas, ou seja, medições baseadas nas necessidades do usuário, descritas na ISO/IEC 9126-2 (Figura 7c). Para a avaliação das características de qualidade interna são utilizadas as métricas internas, descritas na ISO/IEC 9126-3 (Figura 7d) e a norma ISO/IEC 9126-4 define métricas para a avaliação das características de qualidade em uso (Figura 7e). 26

Figura 7 Representação da norma ISO/IEC 9126 e suas representações Fonte: Adaptação de [6] Na seqüência serão detalhados o Modelo de Qualidade, as Métricas Externas, Internas e de Qualidade em Uso, citados acima. 4.1 ISO/IEC 9126-1: Modelo de Qualidade Como descrito anteriormente, a norma ISO/IEC 9126-1 é formada por dois Modelos de Qualidade: o Modelo de Qualidade Interna e Externa e o Modelo de Qualidade em Uso. Esses dois modelos e suas respectivas características serão detalhados a seguir. 27

4.1.1 Modelo de Qualidade para Qualidade Interna e Externa Qualidade interna é a totalidade de características do produto de software na visão interna.[6] Ela é usada para especificar as propriedades do produto de software intermediário. Analogamente, a qualidade externa é a totalidade de características do produto de software do ponto de vista externo. É a qualidade que normalmente é avaliada quando o produto de software final está sendo testado. Como é possível visualizar na Figura 8, o modelo de qualidade para qualidade interna e externa possui definições de seis características básicas que um produto de software deve ter para ser considerado um software de qualidade: funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e portabilidade. Figura 8 Características e Subcaracterísticas de Qualidade Externa e Interna Fonte: [6] A primeira publicação da norma, em 1991, possuía apenas as características e subcaracterísticas de qualidade para avaliar um produto de software. Cada característica e subcaracterística está detalhada na seqüência, 28

sendo que o texto em itálico foi extraído da própria norma e representa a definição de cada uma das subcaracterísticas.[9] A funcionalidade descreve um conjunto de atributos que evidenciam a existência de um conjunto de funções, que satisfazem as necessidades explícitas ou implícitas, e suas propriedades especificadas. Suas subcaracterísticas são: Adequação: Atributos do software que evidenciam a presença de um conjunto de funções e sua apropriação para as tarefas especificadas ; Acurácia: Atributos do software que evidenciam a geração de resultados ou efeitos corretos ou conforme acordados ; Interoperabilidade: Atributos do software que evidenciam sua capacidade de interagir com sistemas específicos ; Conformidade: Atributos do software que fazem com que ele esteja de acordo com as normas, convenções ou regulamentações previstas em leis e descrições similares, relacionadas à aplicação ; Segurança de acesso: Atributos do software que evidenciam sua capacidade de evitar o acesso não autorizado, acidental ou deliberado, a programas e dados. A confiabilidade possui um conjunto de atributos que evidenciam a capacidade do software de manter seu nível de desempenho sob condições estabelecidas durante um período de tempo estabelecido. As suas subcaracterísticas básicas são: Maturidade: Atributos do software que evidenciam a freqüência de falhas ou defeitos no software ; Tolerância a falhas: Atributos do software que evidenciam sua capacidade em manter um nível de desempenho especificado nos casos de falhas no software ou de violação nas interfaces especificadas ; Recuperabilidade: Atributos do software que evidenciam sua 29

capacidade de restabelecer seu nível de desempenho e recuperar os dados diretamente afetados, em caso de falha, e no tempo e esforço necessários para tal. O conjunto de atributos de usabilidade ou capacidade para uso evidencia o esforço necessário para poder-se utilizar o software, bem como o julgamento individual deste uso, por um implícito ou explícito de usuários. As subcaracterísticas são: Inteligibilidade: Atributos do software que evidenciam o esforço do usuário para reconhecer o conceito lógico e sua aplicabilidade ; Apreensibilidade: Atributos do software que evidenciam o esforço do usuário para aprender sua aplicação (por exemplo: controle de operações, entradas, saídas) ; Operacionalidade: Atributos do software que evidenciam o esforço do usuário para sua operação e controle da operação. A característica da eficiência é constituída por um conjunto de atributos que verifica o relacionamento entre o nível de desempenho do software e a quantidade de recursos usados, mediante condições estabelecidas. Suas subcaracterísticas são: Comportamento em relação ao tempo: Atributos do software que evidenciam seu tempo de resposta, tempo de processamento e velocidade na execução de suas funções ; Comportamento em relação aos recursos: Atributos do software que evidenciam a quantidade de recursos usados e a duração de seu uso na execução de suas funções. A manutenabilidade mostra os atributos que avaliam o esforço necessário para fazer modificações especificadas no software. Suas subcaracterísticas são: Analisabilidade: Atributos do software que evidenciam o esforço necessário para diagnosticar deficiências ou causas 30