Você está na página 1de 56

Engenharia de Software

Qualidade de Software

DI-UFPE

@ 1998, Alexandre Vasconcelos

Contedo

Introduo Conceitos de Qualidade Fatores de Qualidade de Software Mtricas de Qualidade Controle e Garantia de Qualidade de Software Certificao de Qualidade Concluso

DI-UFPE

@ 1998, Alexandre Vasconcelos

Introduo

O principal objetivo da Engenharia de Software (ES) ajudar a produzir software de qualidade; Empresas que desenvolvem software de qualidade so mais competitivas; Empresas que utilizam software de alta qualidade podem, em geral, oferecer um melhor servio a um preo mais competivo.

DI-UFPE

@ 1998, Alexandre Vasconcelos

Conceitos de Qualidade

Definio genrica:

Propriedade, atributo ou condio das coisas ou das pessoas capaz de distingui-las das outras e de lhes determinar a natureza (Aurlio). Qualidade estar em conformidade com os requisitos dos clientes; Qualidade antecipar e satisfazer os desejos dos clientes; Qualidade escrever tudo o que se deve fazer e fazer tudo o que foi escrito.

Outras definies:

DI-UFPE

@ 1998, Alexandre Vasconcelos

Conceitos de Qualidade

Segundo a atual norma brasileira sobre o assunto (NBR ISO 8402), qualidade :

A totalidade das caractersticas de uma entidade que lhe confere a capacidade de satisfazer as necessidades explcitas e implcitas. conformidade a requisitos funcionais e de desempenho explicitamente declarados, a padres de desenvolvimento claramente documentados e a caractersticas implcitas que so esperadas de todo software profissionalmente desenvolvido (Pressman).

Definio de qualidade de software:

DI-UFPE

@ 1998, Alexandre Vasconcelos

Fatores de Qualidade de Software

A noo de qualidade de software pode ser descrita por um grupo de fatores, requisitos ou atributos, tais como: confiabilidade, eficincia, facilidade de uso, modularidade, legibilidade, etc; Podemos classificar estes fatores em dois tipos principais: externos e internos;

Fatores Externos Fatores Internos


DI-UFPE @ 1998, Alexandre Vasconcelos 6

Fatores de Qualidade de Software

Fatores externos so percebidos tanto pelas pessoas que desenvolvem software quanto pelos usurios. Por exemplo, confiabilidade, eficincia e facilidade de uso so fatores externos; Fatores internos so percebidos apenas pelas pessoas que desenvolvem software. Por exemplo, modularidade e legibilidade so fatores internos; Se os fatores internos forem observados, os fatores externos sero consequentemente observados. De fato, os fatores internos so um meio para se alcanar os fatores externos.
@ 1998, Alexandre Vasconcelos 7

DI-UFPE

Fatores Externos de Qualidade de Software

facilidade de uso eficincia portabilidade

s o f t w a r e

correo
robustez integridade

DI-UFPE

@ 1998, Alexandre Vasconcelos

Fatores Externos de Qualidade de Software


Facilidade de uso: a facilidade de aprender como usar o software; Eficincia: o bom uso dos recursos computacionais; Portabilidade: a facilidade de transferir software entre ambientes operacionais.

DI-UFPE

@ 1998, Alexandre Vasconcelos

Fatores Externos de Qualidade de Software

Correo: habilidade do software executar suas tarefas exatamente como definida pelos requisitos e especificao; Robustez: habilidade de um software funcionar mesmo em condies anormais; Integridade: a habilidade do sistema de proteger seus vrios componentes contra acessos ou modificaes indevidos.

DI-UFPE

@ 1998, Alexandre Vasconcelos

10

Mtricas de Qualidade: motivao


Vrias mtricas foram desenvolvidas para medir os atributos ou fatores de qualidade; Independentemente da mtrica usada, sempre se busca os mesmos objetivos

Melhorar o entendimento da qualidade do produto; Atestar a efetividade do processo; Melhorar a qualidade do trabalho realizado a nvel de projeto.

DI-UFPE

@ 1998, Alexandre Vasconcelos

11

Mtricas de Qualidade: exemplos


rvore de atributos de qualidade (Boehm, Brown e Lipow); Cdigo fonte (Halstead); Qualidade da especificao (Davis); Mtricas para sistemas orientados a objetos (OO).

DI-UFPE

@ 1998, Alexandre Vasconcelos

12

rvore de Atributos de Qualidade: Boehm, Brown e Lipow


portabilidade confiabilidade independncia de dispositivo auto contido

preciso
completude

usabilidade

eficincia
robustez/integridade consistncia facilidade de teste

software de qualidade

manutenabilidade

facilidade de entendimento facilidade de modificao

estruturado conciso legvel extensibilidade 13

DI-UFPE

@ 1998, Alexandre Vasconcelos

Cdigo Fonte (Halstead)

Baseia-se na habilidade de se obter as seguintes medidas primitivas num programa fonte ou estimadas na fase de projeto:

n1: numero de operadores distintos que aparecem num programa; n2: nmero de operandos distintos que aparecem num programa; N1: nmero total de ocorrncia de operadores; N2: nmero total de ocorrncia de operandos.

DI-UFPE

@ 1998, Alexandre Vasconcelos

14

Cdigo Fonte (Halstead)

Com base nestas medidas primitivas, Halstead definiu frmulas para calcular outras mtricas, como:

Comprimento global do programa; Nvel de programa: compara implementaes de um algoritmo em linguagens diferentes; Esforo de programao; etc.

Com estas medidas pode-se estimar o tempo total de programao, o nmero de erros esperados no programa, etc.

DI-UFPE

@ 1998, Alexandre Vasconcelos

15

Qualidade da Especificao (Davis)

Davis sugere uma lista de caractersticas que podem ser usadas para avaliar a qualidade do modelo e da correspondente especificao de requisitos:

Falta de ambiguidade; Completude; Corretude; Facilidade de entendimento; Verificabilidade; Conciso; Facilidade de rastreamento e de modificao, etc.

DI-UFPE

@ 1998, Alexandre Vasconcelos

16

Qualidade da Especificao (Davis): exemplo

Embora muitas medidas paream qualitativas, ele demonstrou que cada uma delas pode ser representada na forma de mtricas; Exemplo:

Falta de ambiguidade:
Nmero de requisitos (nr = nf + nnf); Nmero de requisitos para os quais os revisores de cada requisito tiveram a mesma interpretao (nui); Idealmente a falta de ambiguidade (Q1 = nui/nr) = 1.

DI-UFPE

@ 1998, Alexandre Vasconcelos

17

Mtricas para Sistemas Orientados a Objetos

Estas mtricas devem focalizar nas caractersticas que distingem software OO de software convencional; Podem ser divididas em:

Mtricas orientadas a classes; Mtricas para testes em OO; Mtricas para projeto OO.

DI-UFPE

@ 1998, Alexandre Vasconcelos

18

Mtricas Orientadas a Classes

Mtricas CK (Chidamber e Kemerer)

Acoplamento entre objetos: indica o grau de interdependncia entre objetos. Quanto maior o acoplamento, menor a reusabilidade da classe e mais difcil a manuteno e os testes; Profundidade da rvore de herana: quanto maior este valor, mais difcil determinar o comportamento das classes de nveis mais baixos; Nmero de filhos: com o crescimento do nmero de filhos, aumenta o reuso, mas as abstraes da superclasse podem ser diludas; etc.
@ 1998, Alexandre Vasconcelos 19

DI-UFPE

Mtricas Orientadas a Classes

Mtricas propostas por Lorenz e Kidd

Tamanho da classe: nmero total de operaes mais o nmero de atributos. Quanto maior este nmero, maior a responsabilidade da classe, podendo reduzir a sua reusabilidade e dificultar a implementao e os testes; Nmero de operaes redefinidas por uma subclasse. Valores grandes para esta mtrica geralmente indicam problemas de projeto (ex: violao da abstrao); Nmero de operaes adicionadas a uma classe. Quanto maior este valor, mais especfica a classe e mais difcil o seu reuso; etc.
@ 1998, Alexandre Vasconcelos 20

DI-UFPE

Mtricas para Testes em OO


Fornecem uma indicao da qualidade do projeto do esforo de testes requerido; So dividas em dois grupos relativos a caractersticas importantes do projeto:

Encapsulamento; Herana.

DI-UFPE

@ 1998, Alexandre Vasconcelos

21

Mtricas para Testes em OO: encapsulamento

Coeso entre mtodos: quantidade de mtodos de uma classe que acessam um mesmo atributo da classe. Se este valor alto implica que mais estados devem ser testados para garantir que mtodos no geram efeitos colaterais; Percentagem de atributos pblicos: quanto maior este valor, mais testes precisam ser feitos na classe para garantir a ausncia de efeitos colaterais; Nmero de classes ou mtodos que acessam atributos de outras classes: quanto maior este valor, maior a possibilidade de violao de encapsulamento e maior a necessidade de testes.
@ 1998, Alexandre Vasconcelos 22

DI-UFPE

Mtricas para Testes em OO: herana

Nmero de classes raizes: esta mtrica indica o nmero de hierarquias distintas. Quanto maior o seu valor, maior o esforo de testes; Fan in: indica a quantidade de classes herdadas por outra classe, ou seja, herana mltipla. Quanto maior o fan in, maior o esforo de teste; Nmero de filhos e profundidade da rvore de herana: quanto maior estes valores, maior a quantidade de mtodos da superclasse que precisam ser retestados nas subclasses.
@ 1998, Alexandre Vasconcelos 23

DI-UFPE

Mtricas para Projeto OO


O trabalho de um gerente planejar, coordenar, verificar a evoluo e controlar o projeto de software; A durao e o esforo requerido em um projeto so diretamente proporcionais ao tamanho do projeto; Mtricas como as seguintes fornecem uma idia do tamanho do software:

Nmero de classes chaves: classes que enfocam o domnio especfico do negcio. Dificilmente podem ser implementadas exclusivamente via reuso. Quanto maior este valor, maior o esforo de desenvolvimento; Nmero de subsistemas.
@ 1998, Alexandre Vasconcelos 24

DI-UFPE

Controle e Garantia de Qualidade

Definio:

Atividade e tcnica operacional que utilizada para satisfazer os requisitos de qualidade (McDermid).

So funes gerenciais e esto relacionadas s atividades de verificao e validao.

DI-UFPE

@ 1998, Alexandre Vasconcelos

25

Controle e Garantia de Qualidade

Consome tempo no desenvolvimento de sistemas de software e vai alm da entrega do sistema (entra na fase de manuteno); Tcnicas usadas para cada atividade podem contribuir para o respectivo controle de qualidade; Algumas tcnicas tm controle embutido, outras no.

DI-UFPE

@ 1998, Alexandre Vasconcelos

26

Controle e Garantia de Qualidade


Gerentes querem os melhores projetistas para projetar o produto, mas em geral no podem t-los; Existe ento a necessidade de concentrar esforos em mtodos de SQA (Software Quality Assurance); O papel de SQA monitorar os mtodos e padres que os engenheiros de software usam; Pessoas podem ser experientes em SQA sem, no entanto, serem experientes em projetos de software.

DI-UFPE

@ 1998, Alexandre Vasconcelos

27

Atividades de SQA

Em SQA temos uma variedade de tarefas, as quais podemos dividir em dois grandes grupos:

Engenheiros de software: fazem o desenvolvimento dos sistemas (trabalho tcnico); Grupo de SQA: responsabilidades sobre o plano de qualidade, inspeo, conservao de registros histricos, anlise do produto desenvolvido e reporting das atividades de SQA ao gerente do projeto.

DI-UFPE

@ 1998, Alexandre Vasconcelos

28

Atividades de SQA

O SEI (Software Engineering Institute) recomenda as seguintes atividades para o grupo de SQA

Preparar uma plano de SQA; Participar da descrio do projeto de software; Revisar as atividades dos engenheiros de software; Documentar e consertar os desvios; Registrar discordncias e reportar para o gerente; Gerenciar mudanas e mtricas de software.

DI-UFPE

@ 1998, Alexandre Vasconcelos

29

Atividades de SQA: revises de software


So um filtro no processo de ES; No so limitadas especificao, projeto e cdigo. Defeito anomalia do produto (IEEE); Revises Tcnicas Formais (RTF) encontrar erros durante o processo antes que eles se tornem defeitos; 50% a 60% do total de erros so introduzidos durante o projeto de software; RTF podem descobrir cerca de 75% desses erros.

DI-UFPE

@ 1998, Alexandre Vasconcelos

30

Atividades de SQA:
medidas de produtividade de programao

A qualidade do software depende da produtividade de programao, a qual afetada por:


qualidade da documentao; linguagem de programao; disponibilidade de ferramentas; experincia do programador; comunicao no projeto; grau de dependncia entre mdulos; prticas de programao bem definidas.

DI-UFPE

@ 1998, Alexandre Vasconcelos

31

Atividades de SQA: medidas de confiabilidade

Probabilidade de uma operao de programa de computador ser livre de falha.


no conformidade com os requisitos de software

um elemento importante para a qualidade do software; Exemplo: um software que opera corretamente em 96 das suas 100 execues, tem uma confiabilidade de 0.96.
@ 1998, Alexandre Vasconcelos 32

DI-UFPE

Confiabilidade x Segurana

Confiabilidade

usa a anlise estatstica para determinar a probabilidade de que uma falha venha a ocorrer.

Segurana

examina as maneiras segundo as quais as falhas resultam em condies que podem levar a uma deformao.

DI-UFPE

@ 1998, Alexandre Vasconcelos

33

Plano de SQA

Especifica os objetivos, as tarefas de SQA a serem realizadas, os padres, os procedimentos a estrutura organizacional e os mecanismos de auditoria; Documentos de ES exigidos: Especificao de Requisitos, Descrio de Projeto, Plano (e Relatrio) de Verificao e Validao, Documentao do Usurio.

DI-UFPE

@ 1998, Alexandre Vasconcelos

34

Certificao de Qualidade

No basta que a qualidade exista, ela deve ser reconhecida pelo cliente; Deve existir uma certificao oficial emitida com base em um padro; As certificaes so dadas por instituies competentes; Exemplos de certificao:

Selo SIF de qualidade de produtos alimentcios; Selo ABIC de qualidade do caf; Classificao da rede hoteleira (ex: hotl 5 estrelas).

DI-UFPE

@ 1998, Alexandre Vasconcelos

35

Qualidade do Produto x Qualidade do Processo


Hoje em dia, a qualidade do processo mais importante do que a qualidade final do produto; Existe normas e padres tanto para produtos quanto para processos.

DI-UFPE

@ 1998, Alexandre Vasconcelos

36

Evoluo dos Conceitos de Qualidade


Inspeo ps-produo Controle estatstico de produo Procedimento de produo Educao das pessoas Otimizao dos processos Projeto robusto Produto final avaliado depois de pronto. Avalia subprodutos das etapas de produo Avalia todo o procedimento de produo Avalia as pessoas envolvidas no processo Avalia e otimiza cada processo Avalia o projeto de produo 1900 1940 1950

1960 1970 1980 1990

Engenharia simultnea

Avalia a concepo do produto

DI-UFPE

@ 1998, Alexandre Vasconcelos

37

Padres de Qualidade de Software


Qualidade de produtos de software - ISO 9126 (verso brasileira - NBR 13596); Qualidade de pacotes de software - ISO 12119; Qualidade do processo de software

Capability Maturity Model (CMM) Personal Software Process (PSP) ISO 9000 / ISO 9001

DI-UFPE

@ 1998, Alexandre Vasconcelos

38

Qualidade de produtos de software ISO 9126

Conjunto de caractersticas que devem estar presentes em um software de qualidade:


Funcionalidade - satisfaz as necessidades? Confiabilidade - imune a falhas? Usabilidade - fcil de usar? Eficincia - rpido e enxuto? Manutenibilidade - fcil de modificar? Portabilidade - fcil de usar em outro ambiente?

Muitas destas caractersticas so subjetivas; Outras podem ser definidas por meio de mtricas.
@ 1998, Alexandre Vasconcelos 39

DI-UFPE

Qualidade de pacotes de software ISO 12119


Trata da avaliao de software de prateleira; Descreve detalhes que devem estar presentes no software, tais como:

Documentao do usurio de fcil compreenso; Um sumrio e um ndice remissivo na documentao do usurio; Presena de um manual de instalao com instrues detalhadas; Possibilidade de verificar se uma instalao foi bem sucedida; Especificao de valores limites para os dados de entrada; etc.

DI-UFPE

@ 1998, Alexandre Vasconcelos

40

Qualidade do processo de software

Os estudos sobre qualidade esto na sua maioria voltados para o melhoramento do processo de desenvolvimento; Ao melhorar a qualidade do processo est se dando um grande passo para se garantir tambm a qualidade do produto.

DI-UFPE

@ 1998, Alexandre Vasconcelos

41

Qualidade do processo de software A Srie ISO 9000


Padres de Gerenciamento e de Garantia de Qualidade - Diretrizes para Seleo e Uso. Srie de padres ISO 9000 conjunto de documentos que trabalham com sistemas de qualidade que podem ser usados para propostas de garantia de qualidade externa. O ISO 9000 descreve os elementos de sistemas de garantia de qualidade (estrutura organizacional, procedimentos, processos e recursos) em termos gerais.
@ 1998, Alexandre Vasconcelos 42

DI-UFPE

ISO 9001

Sistemas de Qualidade - Modelo para Garantia de Qualidade em Projeto, Desenvolvimento, Produo, Instalao e Servio; Aplicado para todas as engenharias.

DI-UFPE

@ 1998, Alexandre Vasconcelos

43

ISO 9001: requisitos

Define requisitos que devem estar presentes em um sistema de garantia de qualidade efetivo:

Gerncia de responsabilidades Sistema de qualidade documentado Revises de contrato Controle de projeto Controle do processo Inspees e testes Inspees, medidas e testes de equipamentos Treinamento Servicing Tcnicas estatsticas para verificar a aceitao do produto etc.

DI-UFPE

@ 1998, Alexandre Vasconcelos

44

ISO 9000-3

Orientao para a aplicao da ISO 9001 no processo de Engenharia de Software; Todas as orientaes giram em torno de uma situao contratual, onde uma empresa contrata outra empresa para desenvolver um produto de software.

DI-UFPE

@ 1998, Alexandre Vasconcelos

45

ISO 9000-3: processos definidos

Estrutura do sistema de qualidade


Responsabilidade do fornecedor; Responsabilidade do comprador; Anlise crtica conjunta. Anlise crtica do contrato; Especificao de requisitos do comprador; etc. Gerenciamento de configurao; Controle de documentos; etc.
@ 1998, Alexandre Vasconcelos 46

Atividades do ciclo de vida


Atividades de apoio

DI-UFPE

ISO 9000-3: processo de certificao


A empresa estabelece o seu sistema de qualidade; A empresa faz uma solicitao formal a um rgo certificador, incluindo detalhes do negcio da empresa, escopo da certificao solicitada e cpia do manual de qualidade; O rgo certificador faz uma visita empresa, colhe mais dados e explica o processo de certificao; O rgo certificador verifica se a documentao do sistema de qualidade est de acordo com a norma ISO; O rgo certificador envia uma equipe empresa com fins de auditoria. Nesta visita, ser verificado se todos na empresa cumprem o que est documentado no manual de qualidade; O rgo certificador emite o certificado de qualidade; O rgo certificador realiza visitas peridicas empresa para assegurar que o sistema continua sendo efetivo.

DI-UFPE

@ 1998, Alexandre Vasconcelos

47

Qualidade do processo de software Capability Maturity Model (CMM)


Descreve princpios e prticas relacionadas maturidade do processo de software; Tem o objetivo de ajudar as organizaes a melhorarem seus processos de software em termos de um caminho evolutivo que vai de ad hoc (processos caticos) a processos maduros e disciplinados; Para isto define o conceito de nvel de maturidade: base evolucionria bem definida direcionada a obter um processo de software maduro.
@ 1998, Alexandre Vasconcelos 48

DI-UFPE

Capability Maturity Model (CMM): os 5 nveis de maturidade


Otimizado
Gerenciado

Um processo de melhora contnuo capacitado p/retorno quantitativo do processo e das idias.


Medidas de qualidade so coletadas. O processo e o produto so entendidos e controlados quantitativamente. Processos padronizados, documentados e integrados. Processos estabelecidos por experincias anteriores. Processo catico e ad hoc.

Definido

Reproduzvel
Inicial
DI-UFPE

@ 1998, Alexandre Vasconcelos

49

Capability Maturity Model (CMM): reas-chave de processo (KPA)


Indicam as reas que uma organizao deveria enfocar para melhorar seu processo de software; O CMM define 18 KPAs distribudas nos 5 nveis; Cada KPA descrita em termos de prticas que contribuem para satisfazer seus objetivos.

descrevem a infra-estrutura e atividades que contribuem para a implementao e institucionalizao da KPA.

DI-UFPE

@ 1998, Alexandre Vasconcelos

50

Capability Maturity Model (CMM): reas-chave de processo (KPA)


KPA 1: no existem KPAs para este nvel; KPA 2: interesses relacionados ao estabelecimento do controle bsico de administrao de projeto; KPA 3: problemas organizacionais e de projeto; KPA 4: estabelecer um entendimento quantitativo do processo de software e do produto; KPA 5: cobrem os problemas que a organizao e os projetos devem enderear para implementar uma melhora contnua e mensurvel do processo de software.
@ 1998, Alexandre Vasconcelos 51

DI-UFPE

Comparao entre ISO 9001 e CMM

CMM

ISO 9001

nfase no contnuo processo de melhora; Enfoca estritamente o software; No uma norma emitida por uma instituio de padronizao.

nfase no critrio mnimo para um sistema de qualidade aceitvel; Tem um escopo mais abrangente; Por ser mais conhecido e embutir um padro internacional mnimo de qualidade, o ISO talvez traga melhores resultados para a empresa.
52

DI-UFPE

@ 1998, Alexandre Vasconcelos

Comparao entre ISO 9001 e CMM perguntas


Em que nvel do CMM poderia se encaixar uma organizao em conformidade com o ISO 9001? Uma organizao de nvel 2 (ou 3) poderia ser considerada em conformidade com o ISO 9001? Meus esforos na melhoria do processo e no gerenciamento de qualidade deveriam ser baseados no ISO 9001 ou no CMM? Estas perguntas no tm uma resposta definitiva.

DI-UFPE

@ 1998, Alexandre Vasconcelos

53

Qualidade do processo de software Personal Software Process (PSP)


O estmulo para desenvolver o PSP surgiu de questes sobre o CMM; Estratgia para o desenvolvimento pessoal; Objetivo: fazer com que os engenheiros de software fiquem atentos ao processo que eles usam e estejam sempre verificando suas performances no processo de desenvolvimento, aumentando assim a produtividade.

DI-UFPE

@ 1998, Alexandre Vasconcelos

54

Personal Software Process (PSP)

Usando o PSP, os engenheiros de software:


desenvolvem um plano para todo projeto; registram seu tempo de desenvolvimento; trilham seus defeitos; mantm dados de um projeto em relatrios resumidos; usam esses dados para planos de projetos futuros; analisam dados que envolvem seus processos a fim de aumentar suas performances.

DI-UFPE

@ 1998, Alexandre Vasconcelos

55

Concluso

Qualidade um conceito complexo, porque significa diferentes coisas para diferentes pessoas; No h uma simples medida para qualidade de software que seja aceitvel para todos os projetos de todas as empresas; Para estabelecer ou melhorar a qualidade de software, deve-se definir os aspectos de qualidade nos quais se est interessado e, ento, decidir como fazer para med-los; Apesar dos custos elevados, importante introduzir sistemas de gerenciamento de qualidade de software, como o CMM ou o ISO 9001.

DI-UFPE

@ 1998, Alexandre Vasconcelos

56

Você também pode gostar