Apostila - Engenharia de Software - Qualidade de Software

Apostila - Engenharia de Software - Qualidade de Software

(Parte 1 de 7)

UNIVERSIDADE DE PASSO FUNDO

INSTITUTO DE CIÊNCIAS EXATAS E GEOCIÊNCIAS

CIÊNCIA DA COMPUTAÇÃO

Qualidade de Software

SUMÁRIO

I. - O QUE É QUALIDADE 4

Proposições da qualidade de software: 4

Princípios de qualidade: 5

Princípios de gerência: 5

Princípios de engenharia: 5

II. -HISTÓRICO DA QUALIDADE 5

III. - PORQUÊ SE PREOCUPAR COM A QUALIDADE DE SOFTWARE ? 7

Qualidade x Definição de pré-requisitos 7

Qualidade e o desenvolvimento software 8

IV. - QUALIDADE E SERVIÇO DE SUPORTE AO USUÁRIO 8

O que é um Sistema de Qualidade ? 9

Qualidade Produto x Qualidade Processo 10

VI. - QUALIDADE DE SOFTWARE: 11

Engenharia de Software 12

Qualidade de Produtos de Software - ISO 9126 13

VII - MÉTRICAS DE SOFTWARE 14

VIII - GUIAS PARA AVALIAÇÃO DA QUALIDADE - ISO 14598 15

IX - QUALIDADE DE PACOTES DE SOFTWARE - ISO 12119 17

X - QUALIDADE DE PROCESSO DE SOFTWARE: 18

XI – A SÉRIE ISO 9000 : 18

Estrutura do Sistema de Qualidade 19

XII - ISO 12207 – PROCESSO DE VIDA DO CICLO DE SOFTWARE 20

XIII – GERENCIANDO UM COMPANHIA DE QUALIDADE 22

Dedicação à satisfação do cliente 22

Dar ênfase à melhoramentos contínuos 22

Tratar fornecedores como parceiros de negócios 22

Comunicação e time de trabalho 22

Atualizando empregados 23

Compromisso da gerência 23

XIV. – IMPLEMANTANDO UM SISTEMA DE QUALIDADE 23

XIV.1 - UM SISTEMA DE QUALIDADE 23

Aspectos Técnicos 23

Aspectos culturais 24

XIV.2 – INICIANDO UM SISTEMA DE QUALIDADE 24

Preparar uma política de qualidade 24

Estabelecer uma equipe de suporte em qualidade 24

XIV.3 - DEFINIR UM PROGRAMA PARA A QUALIDADE 25

Avaliar a organização 25

Projetar um sistema de qualidade 25

Planejamento e implementação do programa de qualidade 26

XIV.4. - IMPLEMENTAR UM PROGRAMA CULTURAL 26

XIV.5 - IMPLEMENTAR O PROGRAMA TÉCNICO 27

Adotar um ciclo de vida 27

Programa de métricas e medidas de software 27

Desenvolvimento 28

Suporte 28

Treinamento 28

XIV.6 – REVISÕES DE PROCESSOS E PRODUTO 29

Revisões do projeto 29

Revisões da gerência 29

XV. – O FUTURO DA QUALIDADE 29

XVI. - BIBLIOGRAFIA 30

Glossário de Termos da Qualidade 31

I. - O QUE É QUALIDADE

Qualidade hoje em dia, não é apenas um diferencial de mercado para a empresa conseguir vender e lucrar mais, é um pré requisito que a empresa deve conquistar para conseguir colocar o produto no Mercado Global.

Na área de software, há uma urgente necessidade de uma maior preocupação sobre o tema, mas afinal, o que é qualidade?

Existem diversas definições. Algumas pessoas que tentaram uma definição simples chegaram a frases como:

  • 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

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

A totalidade das características de uma entidade

que lhe confere a capacidade de satisfazer

às necessidades explícitas e implícitas

Nota-se que esta definição formal exige alguns complementos, principalmente para definir o que são as entidades, as necessidades explícitas e as necessidades implícitas.

  • A entidade é o produto do qual estamos falando, que pode ser um bem ou um serviço.

  • As necessidades explícitas são as próprias condições e objetivos propostos pelo produtor.

  • As necessidades implícitas incluem as diferenças entre os usuários, a evolução no tempo, as implicações éticas, as questões de segurança e outras visões subjetivas.

Por exemplo, a qualidade de um prato de comida (a entidade, o produto) está relacionada com a satisfação de necessidades (requisitos) tais como: sabor, aparência, temperatura, rapidez no serviço, preço, higiene, valor nutricional, etc... Para avaliar a qualidade de um produto, deve-se fazer uma lista destas necessidades e analisar cada uma destas necessidades.

Proposições da qualidade de software:

  1. Qualidade é o sucesso para o negócio de softwares, como em qualquer outro;

  2. A maneira mais barata de aumentar a produtividade é aumentar a qualidade do software;

  3. A qualidade ao suporte do produto é tão importante quanto a qualidade do próprio software, o ambiente de suporte deve ter engenharia tanto quanto o ambiente de desenvolvimento;

  4. Para alcançar a qualidade de software, as pessoas e a cultura são tão importantes quanto a tecnologia;

  5. O único caminho seguro para aumentar a qualidade do software é melhorar os processos ( o que inclui pessoal, facilidades, equipamentos, tecnologia e metodologia);

  6. Aumento de processos é normalmente desnecessário a menos que o gerente demonstre compromisso e liderança;

  7. Qualidade e melhoramento dos processos são de difíceis esforços: é sempre possível realizar algo um pouco melhor, um pouco mais rápido e um pouco mais barato;

  8. Um sistema de qualidade compatível com ISO9000 é um bom alvo para muitas organizações, mas não para todas;

  9. Um sistema de qualidade para uma organização deve ser medido de acordo com suas necessidades e circunstâncias ou não será eficiente

  10. Um sistema de qualidade de software eficiente utiliza de boas práticas da engenharia de software baseado nos seguintes princípios:

Princípios de qualidade:

  • Tentar previnir defeitos ao invés de consertá-los;

  • Ter certeza dos defeitos que forem encontrados, serem corrigidos o mais rápido possível;

  • Estabelecer e eliminar as causas, bem como os sintomas dos defeitos;

  • Auditar o trabalho de acordo com padrões e procedimentos previamente estabelecidos;

Princípios de gerência:

  • Definir regras e responsabilidades;

  • Planejar o trabalho;

  • Trilhar o progressso através de planos e corrigir quando necessário;

  • Refinar o plano sempre e progressivamente;

Princípios de engenharia:

  • Analisar o problema antes de desenvolver a solução;

  • Quebrar problemas complexos em problemas menores;

  • Garantir que subproblemas unam-se pelo controle de seus relacionamentos;

II. -HISTÓRICO DA QUALIDADE

Conceituar qualidade se torna uma tarefa muito difícil, pois elementos intrínsecos está enraizado no intelecto de cada ser. Portanto se exercícios forem feitos dando como missão para cada grupo, várias definições são apresentadas, mas o que mostra como bem próximo de se considerar é como sendo um método gerencial que através de processos e procedimentos disseminados pôr toda a organização busca uma posição competitiva para propiciar a satisfação da sociedade ao longo do tempo.

A história do desenvolvimento da Qualidade Total como sistema administrativo ter que ser buscado na origem do modelo científico de administração F. Taylor em 1911 publicado em seu livro Princípios da Administração Cientifica em que citava: o aumento da eficiência , a racionalização dos métodos de trabalho, a crença no homem econômico , a divisão e a hierarquização do trabalho , a relevância da organização formal.

Nos anos 30, o Dr. W.A. Shewhart causa uma revolução à teoria científica da administração quando propõe um método voltado para gestão das organizações conhecido como Controle da Qualidade - Controle Estatístico da Qualidade (CEQ) ou Controle Estatístico de Processos (CEP) que se baseava na aplicação de gráficos de controle, na inspeção por amostragem.

A tese de Deming para os industriais do pós guerra , nos Estados Unidos, era a da produção com qualidade. Mas, como muitas vezes acontece, a verdade é que Deming não foi ouvido em sua terra, não foi profeta em sua terra e este "não ouvir Deming" vai custar caro aos americanos, porque em pouco tempo vão perder os maiores mercados do mundo.

O Japão, em 1950, convida Deming a fazer uma série de palestras para a J.U.S.E. Hoje esta é uma sigla famosa, que significa União Japonesa de Cientistas e Engenheiros. A JUSE foi responsável pela revolução que o Japão conseguiu implementar.

Deming também foi convidado pela Associação Japonesa da Alta Administração, que é composta pelos 45 maiores industriais japoneses. Isto Significava que o maior poderio privado, 89% do dinheiro privado japonês, estava ai, nesses 45 industriais.

Deming ensinou seu método e, também, aperfeiçoou-o, desenvolvendo uma nova forma participativa de gerência, a qual tirava proveito dos conhecimentos e habilidades de todos funcionários, em todos os níveis, por meios de equipes e sistemas de sugestões que sempre focalizam o cliente.

A psicologia das relações humanas traz o conhecimento do comportamento dos funcionários das organizações e diferente teorias, a da motivação e personalidade de A. Maslow, contribuem com estudos do fator humano, preocupando-se em considerar a satisfação do funcionário como um dos responsáveis pelo aumento da produtividade e de qualidade do produto .A teoria motivação-higiene de Herzberg distingue os fatores do ambiente ( fisiológicos, segurança, social, estima) como fatores provenientes especificamente do serviço ( automatização), mostrando serem esses últimos os motivadores.

Em 1980 começam de forma oficial, nas organizações americanas, ao grandes programas de Qualidade. A primeira organização a que Deming atende é a FORD.

Os Estados Unidos buscaram, além de Deming outros grandes idealizadores deste processo: J.M. JURAN, PHILIP CROSBY, os famosos gurus da Qualidade também chamados pensadores da Qualidade, que começa a dar consultoria para os Estados Unidos sobre Qualidade Total ou Liderança pela Qualidade.

III. - PORQUÊ SE PREOCUPAR COM A QUALIDADE DE SOFTWARE ?

A qualidade, hoje em dia, é crítica para a sobrevivência e o sucessso do mercado de software que está se desenvolvendo de forma global. Uma organização não sobressairá no mercado global a menos que produza software de boa qualidade e seus clientes vejam produtos e serviços de boa qualidade.

Existem muitas razões que devem ser levadas em conta, a saber:

  1. Qualidade é competitividade: a única maneira de diferenciar o produto do competidor é pela qualidade do software e do suporte que é fornecido juntamente. Como o mercado amadurece, usuários não querem apenas que a empresa fale que tem qualidade, mas que mostre a todos a sua qualidade através de Certificação internacional. Não ter certificação pode acarretar desvantagem competitiva.

  2. Qualidade é essencial para a sobrevivência: Clientes estão pedindo por qualidade. Se a empresa não tiver habilidade de sobreviver em um mercado altamente competitivo, ela está em débito com o mercado. A maioria das grandes organizações está reduzindo o número de fornecedores, e um meio de escolher os fornecedores é verificando quais deles têm certificações de qualidade.

  3. Qualidade é essencial para o mercado internacional: O mercado de software está, cada vez mais, se tornando global. A habilidade das empresas de mostrarem qualidade, eventualmente as colocam no mercado global. O mercado local é vulnerável a produtos importados que, normalmente, têm mais qualidade.

  4. Qualidade é custo/benefício: um sistema de qualidade direciona para o aumento da produtividade e permanentemente reduz custos, habilitando o gerenciamento para reduzir a correção de defeitos dando ênfase à prevenção. Todas as empresas sabem que corrigir defeitos após o desenvolvimento do software é mais dispendioso do que corrigi-los depois. Prevenir defeitos primeiramente pode resolver muita coisa depois e economizar bastante.

  5. Qualidade retém consumidores e aumenta lucros: pouca qualidade normalmente custa muito mais do que contratar mais desenvolvedores e ainda continuar sem qualidade. A maioria dos consumidores não tolerarão falta de qualidade e irão procurar outros desenvolvedores. Mais qualidade aumenta a satisfação dos consumidores e assegura os que já são clientes a mais tempo.

Qualidade x Definição de pré-requisitos

O processo de pré-requisitos deve identificar e definir as características de um produto em particular que é de necessidade do cliente e distinguí-los dos menos importantes. É importantíssimo que, na entrega do produto final, o sistema tenha pouquíssimos ou nenhum erro ou falha e seja fácil de utilizá-lo deixando a performance para segundo plano.

A comunicação entre o desenvolvedor e o cliente é a chave para a definição correta. O desenvolvedor deverá trabalhar em conjunto com o cliente, nesta primeira fase, para definir corretamente as especificações do software.

No caso de a empresa não poder entrar em contato direto com o cliente (um produto para vários clientes, como um sistema que vai ser desenvolvido para o mercado SOHO – Small Office/Home Office), a função do marketing da empresa deverá ser tomada como cliente por conhecer o mercado que o produto vai ser lançado.

É aconselhável desenvolver técnicas de prototipagem para isolar e definir as características de qualidade.

O processo de descobrir os pré-requisitos do sistema é geralmente a fase de análise do sistema. O custo/benefício de se aplicar adequadamente os recursos para esta fase é muito grande.

Pode ser muito caro desenvolver o software errado”

Qualidade e o desenvolvimento software

O processo de desenvolvimento do software é onde os desenvolvedores traduzem os pré-requisitos em software.

É certo que a qualidade do software está diretamente ligada à qualidade dos processos utilizados para o desenvolvimento.

Um bom desenvolvimento de software deve capacitar à organização a definição da consistência do produtos de qualidade. A comunidade de software está vendo que o desenvolvimento do produto deve ser feito de maneira muito rápida. O ciclo de vida do produto é agora um negócio crítico para muitos desenvolvedores.

Os consumidores de software necessitam de produtos cada vez melhores e mais rápidos de serem desenvolvidos para aumentar a sua competitividade no mercado global.

Se estes objetivos forem cumpridos, o desenvolvimento de software, deve:

  • Utilizar as melhores práticas da engenharia de software;

  • Ser operado por pessoal treinado com responsabilidades e instruções;

  • Dar ênfase na prevenção de defeitos assim que forem detectados

  • Gerar registro para demonstrar efetividade e eficiência;

  • Utilizar destes registros para aumentar a performance no futuro.

IV. - QUALIDADE E SERVIÇO DE SUPORTE AO USUÁRIO

O suporte ao usuário é complexo e deve incluir:

  • Documentação para o usuário, incluindo ajuda on-line;

  • Empacotamento e distribuição organizados;

  • Implementação e customização de serviços e consultas;

  • Treinamento;

  • Assistência help-desk;

  • Relatórios de erros e correções;

  • Melhoramento do software.

Para uma aplicação instalada em um local, os requisitos de suporte podem ser fornecidos via telefone e uma pessoa deve ser treinada e encarregada de receber as ligações.

No caso de ser uma aplicação de nível internacional, ela deve prover ajuda pela Internet e implementar um sistema administrativo para suportar um sistema de help-desk em nível internacional.

O que é um Sistema de Qualidade ?

Aplicar os princípios da qualidade de software é o início para o sucesso. O termo “sistema de qualidade” é utilizado internacionalmente para descrever um processo na qual garante e demonstra a qualidade dos produtos e serviços ofertados pela empresa.

A padronização ISO 9000 define e descreve o que requirido ou satisfatório em um sistema de qualidade contendo componentes de desenho e desenvolvimento. As padronizações existentes para garantir a qualidade de software serão estudadas mais à frente neste trabalho.

Além das padronizações ISO, muitas outras organizações nacionais e internacionais promovem padrões que descrevem sistemas de qualidade para serem aplicado em sistemas de desenvolvimento e suporte em certas circunstâncias, a exemplificar o CMM (Capability maturity model).

O termo “gerenciamento de sistemas de qualidade” é utilizado às vezes. Este termo dá ênfase às necessidades do processo de qualidade para serem gerenciados para garantir que continue de forma correta e eficiente.

Tão importante quanto as práticas e ferramentas é o status da pessoa que as usa. A qualidade deve garantir que as pessoas envolvidas devem ter suas habilidades certas para cada tipo de trabalho de uma maneira profissional. Se as pessoas necessitam de treinamento, então a empresa deverá treinar os seus usuários. Deve-se garantir que as pessoas entendam suas responsabilidades e como seu trabalho se relaciona com outras pessoas.

Um sistema de qualidade dá grande ênfase à correção de erros. É muito útil corrigir os erros durante o início do ciclo de vida do sistema.

Melhor ainda, é anular erros antes mesmo deles serem feitos Um sistema de qualidade de sucesso inclui maneiras de registrar os erros para determinar as causas e agir de acordo com o erro eliminando suas causas.

Em suma, um sistema de qualidade é tudo que o gerenciamento utiliza para garantir e demonstrar a qualidade do software e do serviço de suporte. O sistema de qualidade é o trabalho completo, incluindo política, procedimentos, ferramentas e recursos, incluindo humano e tecnológico.

V. - CERTIFICAÇÃO DA QUALIDADE

(Parte 1 de 7)

Comentários