Você está na página 1de 29

QUALIDADE DE SOFTWARE

REAS DE CONHECIMENTO - SWEBOK

REQUISITOS DE SOFTWARE

PROJETO DE SOFTWARE
CONSTRUO DE SOFTWARE TESTE DE SOFTWARE MANUTENO DE SOFTWARE GERNCIA DE CONFIGURAO DE SOFTWARE GERNCIA DE ENGENHARIA DE SOFTWARE PROCESSO DE ENGENHARIA DE SOFTWARE MTODOS E FERRAMENTAS DE ENGENHARIA DE SOFTWARE QUALIDADE DE SOFTWARE

VISO POPULAR DE QUALIDADE

Qualidade vista como luxo, classe e questo de gosto Produtos caros, sofisticados e mais complexos so considerados de maior qualidade que produtos similares mais simples Qualidade pode ser discutida, sentida e julgada, mas no pode ser medida, controlada, nem gerenciada.

VISO PROFISSIONAL DE QUALIDADE

Qualidade est relacionada com os Requisitos designados para o produto


As no conformidades aos requisitos so consideradas defeitos, falta de qualidade Qualidade pode e deve ser medida, definida, monitorada, gerenciada e melhorada

QUALIDADE DE SOFTWARE Phil Crosby Conformidade com os requisitos do usurio Watts Humphrey Obter excelentes nveis de adequao para o uso

IBM Market-driven quality (obter a satisfao total do cliente)


Baldrige Customer-driven quality (satisfao do cliente como principal considerao) ISO 9001 O grau no qual um conjunto de caractersticas intrnsecas atendem aos requisitos PMBOK - Qualidade a totalidade de caractersticas de uma entidade
que a torna capaz de satisfazer necessidades explcitas ou implcitas Pressman - Concordncia com os requisitos funcionais e de performance, com padres de desenvolvimento explicitamente documentados e com as caractersticas implcitas em todo software desenvolvido profissionalmente

QUALIDADE DE SOFTWARE

FUNDAMENTOS
Cultura e tica
Cdigo de tica - IEEE/ACM

GERENCIAMENTO DO PROCESSO (SQM) Planejamento da Qualidade


Definir as caractersticas de qualidade Planejar o processo para obteno do produto requerido

CONSIDERAES PRTICAS
Requisitos de Qualidade
Fatores de Influncia Confiana no funcionamento (dependability) Nveis de Integridade

Valor e Custo da Qualidade Custo de Preveno Custo de Appraisal Custo de Falhas Internas Custo de Falhas Externas Modelos e Caractersticas da Qualidade (ISO-IEC) - Qualidade Interna - Qualidade Externa Qualidade em Uso Qualidade do Processo Qualidade do Produto Melhoria da Qualidade

Avaliao da Qualidade do Software (SQA) Verificao e Validao Reviso e Auditoria


Revises Gerenciais - monitorar o progresso Revises Tcnicas avaliar a adequao aos objetivos Inspeo detectar anomalias Walkthroughs avaliar o produto Auditorias avaliar o produto quanto ao uso de padres

Caracterizao de Defeito
Erro / Falta / Falha / Engano

Tcnicas de Gerenciamento da Qualidade de Software


Tcnicas Estticas Tcnicas pessoas-intensivas Tcnicas Analticas Tcnicas Dinmicas Teste

Medidas da Qualidade de Software

QUALIDADE DE SOFTWARE

Planejamento da Qualidade identificar quais padres de qualidade so relevantes e determinar a forma de satisfazlos. Garantia da Qualidade avaliar periodicamente o desempenho geral do projeto/processo, buscando assegurar a satisfao dos padres de qualidade relevantes.

Controle da Qualidade monitorar os resultados especficos do projeto/processo para determinar se eles esto de acordo com os padres de qualidade relevantes e identificar as formas para eliminar as causas de desempenhos insatisfatrios.

GARANTIA DA QUALIDADE
A Garantia da Qualidade de Software no algo para se comear a pensar depois que o cdigo gerado. A Garantia de Qualidade de Software ou SQA (Software Quality Assurance) uma atividade que aplicada ao longo de todo o processo. Ela abrange:
Mtodos e ferramentas de anlise, projeto, codificao e teste. Revises tcnicas formais que so aplicadas durante cada fase do processo Uma estratgia de teste de mltiplas fases. Controle da documentao do software e de suas mudanas. Um procedimento para garantir a adequao aos padres de desenvolvimento de Software, se eles forem aplicados. Mecanismos de medio e divulgao. Geralmente, a Garantia da Qualidade consiste de procedimentos, tcnicas e ferramentas aplicadas para assegurar que um produto atinge ou excede padres pr-especificados durante o ciclo de desenvolvimento do produto. Se tais padres forem aplicados, a Garantia da Qualidade assegura que um produto atinge ou excede um nvel de excelncia (industrial ou comercial) mnimo aceitvel.

GARANTIA E PADRES DE QUALIDADE


Importncia dos Padres
Encapsulam as melhores prticas evitam a repetio de erros passados. Infra estrutura para o processo de garantia de qualidade envolve a verificao de conformidade com os padres Ajudam em termos de continuidade todos os engenheiros de uma organizao adotam as mesmas prticas o esforo de aprendizado reduzido. Padres so a chave para gerenciamento de qualidade efetivos. Podem ser internacionais, nacionais, organizacionais ou padres de projeto. Padres de produto so os padres que se aplicam ao produto de software em desenvolvimento. Ex: estilo de programao, etc. Padres de processo definem os processos a serem seguidos durante o desenvolvimento de software. Ex. definies de especificao, processos de projeto e validao, e documentos que devem ser gerados

CONTROLE DA QUALIDADE
Controle da Qualidade a atividade e tcnica operacional que utilizada para satisfazer os requisitos de qualidade (ISO). O Controle da Qualidade feito atravs de uma srie de inspees, revises e testes, usados atravs do ciclo de desenvolvimento, para garantir que cada trabalho produzido est de acordo com sua especificao/requesito. Controle da Qualidade parte do processo de desenvolvimento e, como um processo de feedback, ele essencial para minimizar os defeitos produzidos. Dentre os mtodos de Controle da Qualidade de Software mais conhecidos esto o Capability Maturity Model Integration - CMMI e a Norma ISO 9000-3, que foram motivados pelas falhas nos processos de gerncia e manuteno do desenvolvimento de software.

NORMAS QUALIDADE PROCESSO / PRODUTO


Norma Comentrio

ISO 9126
NBR 13596 ISO 14598 ISO 12119 IEEE P1061 ISO 12207 NBR ISO 9001 NBR ISO 9000-3 NBR ISO 10011

Caractersticas da qualidade de produtos de software.


Verso brasileira da ISO 9126 Guias para a avaliao de produtos de Software, baseados na utilizao prtica da Norma ISO 9126 Caractersticas de Qualidade de pacotes de Software (Software de prateleira, vendido com um produto embalado) Standard for Software Quality Metrics Methodology (produto de Software) Software Life Cycle Process. Norma para a Qualidade do processo de desenvolvimento de Software. Sistemas de Qualidade - Modelo para garantia de Qualidade em Projeto, Desenvolvimento, Instalao e Assistncia Tcnica (processo)

Gesto de qualidade e garantia de qualidade. Aplicao da Norma ISO 9000 para o processo de desenvolvimento de Software.
Auditoria de Sistemas de Qualidade (processo) Capability Maturity Model. Modelo da SEI (Instituto de Engenharia de Software do Departamento de Defesa dos EUA) para avaliao da qualidade do processo de desenvolvimento de Software. No uma Norma ISO, mas muito bem aceita no mercado. Projeto da ISO/IEC para avaliao de processo de desenvolvimento de Software. Ainda no uma Norma oficial ISO, mas o processo est em andamento.

CMM

SPICE ISO 15504

ISO-9001
Adotado em todo o mundo - No especfico Padres para Software

ISO 9001 Quality systems Standards for Quality Assurance in Design, Development, Production, Installation and Service
ISO 9000-3 Guidelines for Application of ISO 9001 to the Development, Supply and Maintenance of Software ISO 9004-2 Quality management and Quality System Elements

NORMA ISO/IEC 9126/1991 OU NBR 13596


Fornece um modelo de propsito geral o qual define 6 categorias de caractersticas de qualidade de software que so, por sua vez, divididas em sub-caractersticas. Estas sub-caractersticas podem ser avaliadas por um conjunto de mtricas. uma referncia mundial para qualidade de software

ISO: The International Standardization Organization, fundada em 1947, coordena o trabalho de 127 pases membros para promover a padronizao de normas tcnicas em mbito mundial IEC: The International Electrotechnical Commission, fundada em 1906, conta com mais de 50 pases e publica normas internacionais relacionadas com eletricidade, eletrnica e reas relacionadas

NORMA ISO/IEC 9126/1991 OU NBR 13596

composta das seguintes partes: - ISO/IEC 9126-1: Modelo de Qualidade - ISO/IEC 9126-2: Mtricas Externas - ISO/IEC 9126-3: Mtricas Internas

- ISO/IEC 9126-4: Mtricas de Qualidade em Uso

ESTRUTURA DO MODELO DA QUALIDADE

O Modelo de Qualidade divide-se em duas partes:


Qualidade interna e externa Qualidade no uso

A primeira parte define 6 caractersticas que so divididas em sub-caractersticas. Estas sub-caractersticas so externas quando o software usado como parte de um sistema de computadores, e so resultado de atributos interno do software. A segunda parte divide-se em 4 caractersticas de utilizao. So os efeitos da combinao das 6 caractersticas anteriores.

MODELO DE QUALIDADE

Processo
influencia
Qualidade do processo

--------------------Produto de Software------------------influencia influencia

depende de
Medidas do processo

Atributos de qualidade interna

Atributos de qualidade externa

Atributos de qualidade no uso


Contextos de uso

depende de
Medidas externas

depende de

Medidas internas

Medidas de qualidade no uso

MODELO PARA QUALIDADE INTERNA E EXTERNA CARACTERSTICAS


Conjunto de funes atendem s necessidades para a finalidade a que o produto se destina?

Funcionalidade
facil transferir o softwre para outro ambiente? O desempenho, mantm-se ao longo do tempo nas condies estabelecidas?

Portabilidade ISO/IEC 9126

Confiabilidade

O software fcil de ser alterado?

Manutenibilidade

Usabilidade

O software fcil de ser utilizado?

Eficincia
O software realiza as tarefas no tempo adequado complexidade de cada uma delas?

MODELO DE QUALIDADE DE PRODUTO DE SOFTWARE ISO/IEC 9126 OU NBR 13596


Funcionalidade - existncia de um conjunto de funes e suas propriedades especificadas. As funes so as que satisfazem as necessidades explcitas e implcitas.
Confiabilidade - capacidade do software de manter seu nvel de desempenho sob condies estabelecidas durante um perodo de tempo estabelecido. Usabilidade - esforo necessrio para se poder utilizar o software, bem como o julgamento individual desse uso, por um conjunto explcito ou implcito de usurios. Eficincia - relacionamento entre o nvel de desempenho do software e a quantidade de recursos usados, sob condies estabelecidas Portabilidade - capacidade do software de ser transferido de um ambiente para outro Manutenibilidade esforo especificadas no software necessrio para fazer modificaes

Modelo de Qualidade de Produto de Software


ISO/IEC 9126 ou NBR 13596

Caractersticas Funcionalidade Confiabilidade Usabilidade


Adequao - Acurcia - Interoperabilidade Segurana de acesso - Conformidade da funcionalidade

Maturidade - Tolerncia a defeitos Recuperabilidade - Conformidade da Confiabilidade

Inteligibilidade - Apreensibilidade - Interoperacionalidade Atratividade - Conformidade da Usabilidade

Eficincia
Manutenibilidade

Comportamento em relao ao tempo Utilizao de recursos - Conformidade da eficincia

Analisabilidade Modificabilidade - Estabilidade Testabilidade - Conformidade da Manutenibilidade

Portabilidade

Adaptabilidade - Capacidade para ser instalado - Co-existncia Capacidade para substituir - Conformidade da portabilidade

FUNCIONALIDADE
Capacidade do produto de software fornecer funes que satisfazem as necessidades explcitas ou implcitas quando o software usado sob condies especificadas Sub-caractersticas: Adequao: capacidade do produto de software de fornecer um conjunto de funes adequado para as tarefas especificadas e os objetivos dos usurios Acurcia: capacidade do produto de software de fornecer os resultados corretos ou acordados com o grau necessrio de preciso Interoperabilidade: capacidade do produto de software interagir com um ou mais sistemas especificados Segurana de acesso: capacidade do produto de software proteger a informao e os dados de forma que pessoas ou sistemas no autorizados no possam l-los ou modific-los e pessoas e sistemas autorizados no tenham negado o acesso aos mesmos Conformidade da funcionalidade: capacidade do produto de software aderir a normas, convenes ou regulamentaes previstas em leis e prescries similares, relacionadas funcionalidade.

CONFIABILIDADE Capacidade do produto de software manter o nvel de desempenho especificado quando usado sob as condies especificadas Sub-caractersticas: Maturidade: capacidade do produto de software evitar falhas provocadas por defeitos no software Tolerncia a defeitos: capacidade do produto de software manter um nvel de desempenho especificado em casos de defeitos no software ou de violao de suas interfaces especificadas Recuperabilidade: capacidade do produto de software restabelecer o nvel de desempenho especificado e recuperar os dados diretamente afetados, em caso de um falha Conformidade da Confiabilidade: capacidade do produto de software aderir a normas, convenes ou regulamentaes relacionadas confiabilidade

USABILIDADE
Capacidade do produto de software ser entendido, ser aprendido e ser atraente ao usurio quando usado sob as condies especificadas Sub-caractersticas:

Inteligibilidade: capacidade do produto de software que permite ao usurio entender se o software adequado e como ele pode ser usado para tarefas e condies de uso especficas Apreensibilidade: capacidade do produto de software permitir ao usurio aprender a sua aplicao. Operacionalidade: capacidade do produto de software permitir ao usurio sua operao e controle Atratividade: capacidade do produto de software ser atraente ao usurio
Conformidade da Usabilidade: capacidade do produto de software aderir a normas, convenes, diretrizes de estilo ou regulamentaes relacionadas usabilidade

EFICINCIA

Capacidade do produto de software fornecer o desempenho adequado, relacionado quantidade de recursos usados, sob condies estabelecidas.
Sub-caractersticas: comportamento em relao ao tempo: capacidade do produto de software fornecer tempo de resposta e de processamento e taxas de throughput ao realizar suas funes sob condies estabelecidas utilizao de recursos: capacidade do produto de software usar quantidade e tipos adequados de recursos quando o software realiza suas funes sob condies estabelecidas conformidade da eficincia: capacidade do produto de software aderir a normas e convenes relacionadas eficincia

PORTABILIDADE
Capacidade do produto de software ser transferido de um ambiente para outro
Sub-caractersticas: Adaptabilidade: capacidade do produto de software ser adaptado a diferentes ambientes especificados, sem a necessidade de aplicao de outras aes ou meios alm daqueles fornecidos para essa finalidade pelo software considerado. Capacidade para ser instalado: capacidade do produto de software ser instalado em um ambiente especificado Co-existncia: capacidade do produto de software co-existir com outro software independente num ambiente comum partilhando recursos Capacidade para substituir: capacidade do produto de software ser usado para substituir um outro software especificado, para o mesmo objetivo no mesmo ambiente Conformidade da portabilidade: capacidade do produto de software aderir a padres ou convenes relacionadas portabilidade

MANUTENIBILIDADE

Capacidade do produto de software de ser modificado. As modificaes podem incluir correes, melhorias ou adaptao do software a mudanas no ambiente, nos requisitos e nas especificaes funcionais. Sub-caractersticas: Analisabilidade: capacidade do produto de software ser diagnosticado com relao a deficincias ou causas de falhas no software, ou para identificar as partes a serem modificadas Modificabilidade: capacidade do produto de software permitir que uma modificao especificada seja implementada. Estabilidade: capacidade do produto de software evitar efeitos inesperados, ocasionados por modificaes no software. Testabilidade: capacidade do produto de software permitir que o software modificado seja validado Conformidade da Manutenibilidade: capacidade do produto de software aderir a normas e convenes relacionadas manutenibilidade

SOFTWARE DE QUALIDADE
Caracterstica Sub-caracterstica
Adequao
Acurcia Funcionalidade (satisfaz as necessidades?) Interoperbilidade Conformidade Segurana de acesso Maturidade Confiabilidade ( imune a falhas?) Tolerncia a falhas Recuperabilidade Intelegibilidade Usabilidade ( fcil de usar?) Apreensibilidade Operacionalidade Eficincia ( rpido e "enxuto"?) Tempo

Pergunta chave para a sub-caracterstica


Prope-se a fazer o que apropriado?
Faz o que foi proposto de forma correta? Interage com os sistemas especificados? Est de acordo com as normas, leis, etc.? Evita acesso no autorizado aos dados? Com que freqncia apresenta falhas? Ocorrendo falhas, como ele reage? capaz de recuperar dados em caso de falha? fcil entender o conceito e a aplicao? fcil aprender a usar? fcil de operar e controlar? Qual o tempo de resposta, a velocidade de execuo?

Recursos
Analisabilidade Modificabilidade Estabilidade Testabilidade Adaptabilidade

Quanto recurso usa? Durante quanto tempo?


fcil de encontrar uma falha, quando ocorre? fcil modificar e adaptar? H grande risco quando se faz alteraes? fcil testar quando se faz alteraes? fcil adaptar a outros ambientes? fcil instalar em outros ambientes? Est de acordo com padres de portabilidade? fcil usar para substituir outro?

Manutenibilidade ( fcil de modificar?)

Portabilidade ( facil de usar em outro ambiente?)

Capac. para ser instalado Conformidade Capac. Para substituir

MODELO PARA QUALIDADE EM USO

QUALIDADE EM USO CARACTERSTICAS


Eficcia: O software permite atingir os objetivos estabelecidos em certas condies de funcionamento Produtividade: Capacidade do software para utilizar um determinado nmero de recursos em relao aos objetivos pretendidos em certas condies de funcionamento Segurana: Capacidade do software em obter nveis de risco, aceitveis em certas condies de funcionamento Satisfao: O software satisfaz os requisitos do usurio

CUSTOS DA QUALIDADE

Custos relacionados com as perdas em funo da qualidade insuficiente de processos, produtos ou servios (custos da noconformidade) ou com os investimentos em atividades que eliminem falhas ou elevem a qualidade de processos, produtos ou servios (custos da conformidade). A identificao e a apropriao contbil desses custos permite que o administrador possa fazer uma anlise do nvel de qualidade de sua produo e possa tomar decises para melhorar esse nvel.