20
* Livro: Engenharia de Software * * Livro: Engenharia de Software * Autor: Roger S. Pressman Autor: Roger S. Pressman * Editora Makron Books * * Editora Makron Books * Capítulo 17 Capítulo 17

* Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

Embed Size (px)

Citation preview

Page 1: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

* Livro: Engenharia de Software * Autor: Roger S. Pressman* Livro: Engenharia de Software * Autor: Roger S. Pressman

* Editora Makron Books * Capítulo 17* Editora Makron Books * Capítulo 17

Page 2: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

2

INTRODUÇÃOINTRODUÇÃO Todos os métodos, ferramentas e procedimentos Todos os métodos, ferramentas e procedimentos

utilizados em um software tem um único objetivo: utilizados em um software tem um único objetivo: “produzir software de alta qualidade”.“produzir software de alta qualidade”.

A garantia de qualidade de software é aplicada ao longo A garantia de qualidade de software é aplicada ao longo de todo o processo de engenharia de software.de todo o processo de engenharia de software.

Qualidade de software abrange:Qualidade de software abrange: 1. Métodos e ferramentas de análise;1. Métodos e ferramentas de análise; 2. Revisões técnicas;2. Revisões técnicas; 3. Estratégia de testes;3. Estratégia de testes; 4. Controle da documentação;4. Controle da documentação; 5. Adequação nos padrões de desenvolvimento.5. Adequação nos padrões de desenvolvimento.

Page 3: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

3

QUALIDADE DE SOFTWARE E GARANTIA QUALIDADE DE SOFTWARE E GARANTIA DE QUALIDADE DE SOFTWARE DE QUALIDADE DE SOFTWARE

A elevada qualidade de software é uma meta A elevada qualidade de software é uma meta importante.importante.

Qualidade de software é :Qualidade de software é :“Conformidade a requisitos funcionais e de desempenho explicitamente declarados, a padrões de desenvolvimento claramente documentados e a características implícitas que são esperadas de todo software profissionalmente desenvolvido.”

Os requisitos do software são a base a partir da Os requisitos do software são a base a partir da qual a qualidade é medida. A falta de qual a qualidade é medida. A falta de conformidade aos requisitos significa falta de conformidade aos requisitos significa falta de qualidade.qualidade.

Page 4: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

4

Padrões especificados definem um conjunto de Padrões especificados definem um conjunto de critérios de desenvolvimento que orientam a critérios de desenvolvimento que orientam a maneira segundo a qual o software passa pelo maneira segundo a qual o software passa pelo trabalho de engenharia.trabalho de engenharia.

Há um conjunto de Há um conjunto de requisitos implícitosrequisitos implícitos que não que não são mencionados. Se o software se adequar aos são mencionados. Se o software se adequar aos seus requisitos explícitos, mas deixar de cumprir seus requisitos explícitos, mas deixar de cumprir seus requisitos implícitos, a qualidade de seus requisitos implícitos, a qualidade de software será suspeita.software será suspeita.

QUALIDADE DE SOFTWARE E GARANTIA DE QUALIDADE DE SOFTWARE E GARANTIA DE QUALIDADE DE SOFTWARE QUALIDADE DE SOFTWARE

Page 5: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

5

A qualidade de software é uma combinação A qualidade de software é uma combinação complexa de fatores que variarão de acordo com complexa de fatores que variarão de acordo com diferentes aplicações e clientes que as solicitam.diferentes aplicações e clientes que as solicitam.

São medidos em dois grupos:São medidos em dois grupos: 1. Fatores que podem ser medidos diretamente. 1. Fatores que podem ser medidos diretamente.

Exemplos: erros, KLOC, unidade de tempo.Exemplos: erros, KLOC, unidade de tempo. 2. Fatores que podem ser medidos indiretamente. 2. Fatores que podem ser medidos indiretamente.

Exemplo: usabilidade e manutenibilidade. Exemplo: usabilidade e manutenibilidade.

Fatores De Qualidade De SoftwareFatores De Qualidade De Software

Page 6: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

6

Fatores De Qualidade De SoftwareFatores De Qualidade De Software

É preciso comparar o software com algum É preciso comparar o software com algum

dado e chegar a uma indicação de dado e chegar a uma indicação de

qualidade.qualidade.

Há alguns fatores de qualidade de software Há alguns fatores de qualidade de software

que focalizam 3 aspectos importantes: suas que focalizam 3 aspectos importantes: suas

características operacionais, sua facilidade características operacionais, sua facilidade

de manutenção e sua adaptabilidade a outro de manutenção e sua adaptabilidade a outro

ambiente.ambiente.

Page 7: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

7

Fatores De Qualidade De SoftwareFatores De Qualidade De Software

Revisãodo

Produto

Transição do

Produto

Operação do

Produto

Page 8: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

8

Os fatores de qualidade apresentam as seguintes Os fatores de qualidade apresentam as seguintes descrições:descrições:

CorretudeCorretude: à medida que um programa satisfaz sua : à medida que um programa satisfaz sua especificação e cumpre os objetivos.especificação e cumpre os objetivos.

ConfiabilidadeConfiabilidade: à medida que se pode esperar que um : à medida que se pode esperar que um programa execute sua função pretendida com precisão programa execute sua função pretendida com precisão exigida.exigida.

EficiênciaEficiência: quantidade de recursos de computação e de : quantidade de recursos de computação e de código exigida para que um programa execute sua função.código exigida para que um programa execute sua função.

IntegridadeIntegridade: à medida que o acesso ao software ou os : à medida que o acesso ao software ou os dados por pessoas não-autorizadas é controlado.dados por pessoas não-autorizadas é controlado.

UsabilidadeUsabilidade: esforço para aprender, operar, preparar a : esforço para aprender, operar, preparar a entrada e interpretar a saída de um programa.entrada e interpretar a saída de um programa.

Fatores De Qualidade De SoftwareFatores De Qualidade De Software

Page 9: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

9

ManutenibilidadeManutenibilidade: esforço exigido para localizar e reparar : esforço exigido para localizar e reparar erros num programa.erros num programa.

FlexibilidadeFlexibilidade: esforço exigido para modificar um programa : esforço exigido para modificar um programa operacional.operacional.

TestabilidadeTestabilidade: esforço exigido para testar um programa a : esforço exigido para testar um programa a fim de garantir sua execução.fim de garantir sua execução.

PortabilidadePortabilidade: esforço exigido para transferir o programa : esforço exigido para transferir o programa de um ambiente para outro.de um ambiente para outro.

ReusabilidadeReusabilidade: um programa pode ser reusado por outros : um programa pode ser reusado por outros programas.programas.

InteroperabilidadeInteroperabilidade: esforço exigido para se acoplar um : esforço exigido para se acoplar um sistema a outro.sistema a outro.

Fatores De Qualidade De SoftwareFatores De Qualidade De Software

Page 10: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

10

ConcisãoConcisão: compactação do programa em termos de linhas : compactação do programa em termos de linhas de código.de código.

SegurançaSegurança: controle que protege programa e dados.: controle que protege programa e dados. SimplicidadeSimplicidade: o quanto um programa pode ser entendido : o quanto um programa pode ser entendido

sem dificuldade.sem dificuldade. ModularidadeModularidade: independência funcional dos componentes.: independência funcional dos componentes. ExpansibilidadeExpansibilidade: o quanto o projeto de arquitetura, : o quanto o projeto de arquitetura,

procedimental e de dados podem ser ampliados.procedimental e de dados podem ser ampliados. InteirezaInteireza: o quanto a implementação total da função : o quanto a implementação total da função

requerida foi conseguida.requerida foi conseguida. AutodocumentaçãoAutodocumentação: o quanto o código-fonte apresenta : o quanto o código-fonte apresenta

documentação significativa.documentação significativa.

Fatores De Qualidade De SoftwareFatores De Qualidade De Software

Page 11: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

11

E ainda, E ainda, FURPSFURPS:: FuncionalidadeFuncionalidade: é aferida avaliando-se o conjunto de : é aferida avaliando-se o conjunto de

características e as capacidades do programa.características e as capacidades do programa. UsabilidadeUsabilidade: avaliada considerando-se os fatores : avaliada considerando-se os fatores

humanos, a estética global, a consistência e a humanos, a estética global, a consistência e a documentação.documentação.

ConfiabilidadeConfiabilidade: avaliada medindo-se a freqüência e a : avaliada medindo-se a freqüência e a gravidade de falhas.gravidade de falhas.

DesempenhoDesempenho: medido avaliando-se a velocidade de : medido avaliando-se a velocidade de processamento, tempo de resposta e eficiência.processamento, tempo de resposta e eficiência.

SuportabilidadeSuportabilidade: capacidade de ampliar o programa.: capacidade de ampliar o programa.

Fatores De Qualidade De SoftwareFatores De Qualidade De Software

Page 12: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

12

Garantia de Qualidade de Software Garantia de Qualidade de Software (SQA)(SQA)

É importante para negócios que geram produtos que são É importante para negócios que geram produtos que são usados por outros.usados por outros.

Paralela com a história da qualidade na manufatura de Paralela com a história da qualidade na manufatura de hardware.hardware.

Segue um padrão sistemático e planejado de ações que Segue um padrão sistemático e planejado de ações que são exigidas para garantir a qualidade.são exigidas para garantir a qualidade.

As pessoas que realizam a SQA devem olhar para o As pessoas que realizam a SQA devem olhar para o software a partir do ponto de vista do cliente.software a partir do ponto de vista do cliente. O software atende aos fatores de qualidade ?O software atende aos fatores de qualidade ? Foi conduzido com padrões preestabelecidos ?Foi conduzido com padrões preestabelecidos ? As disciplinas técnicas foram cumpridas ?As disciplinas técnicas foram cumpridas ?

Page 13: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

13

Atividades SQAAtividades SQA

Compreende uma variedade de tarefas:Compreende uma variedade de tarefas:

1. Aplicação de métodos técnicos;1. Aplicação de métodos técnicos;

2. Realização de revisões técnicas formais;2. Realização de revisões técnicas formais;

3. Atividades de testes de software;3. Atividades de testes de software;

4. Aplicação de padrões;4. Aplicação de padrões;

5. Controle de mudanças;5. Controle de mudanças;

6. Medição;6. Medição;

7. Manutenção de registros e reportagem.7. Manutenção de registros e reportagem.

Page 14: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

14

Atividades SQAAtividades SQA

A SQA inicia-se com o conjunto de A SQA inicia-se com o conjunto de métodos e métodos e ferramentasferramentas técnicas que ajudam o analista a técnicas que ajudam o analista a conseguir uma especificação de elevada conseguir uma especificação de elevada qualidade.qualidade.

Quando uma especificação e um projeto tiverem Quando uma especificação e um projeto tiverem sido criados, cada um deve ser avaliado quanto sido criados, cada um deve ser avaliado quanto à qualidade.à qualidade.

A A atividade de teste de softwareatividade de teste de software combina uma combina uma estratégia de múltiplos passos com uma série de estratégia de múltiplos passos com uma série de métodos de projeto de casos de teste que métodos de projeto de casos de teste que ajudam a garantir uma detecção de erros efetiva.ajudam a garantir uma detecção de erros efetiva.

Page 15: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

15

Atividades SQAAtividades SQA O grau em que O grau em que padrões e procedimentospadrões e procedimentos formais formais

são aplicados no processo de engenharia de são aplicados no processo de engenharia de software varia de empresa para empresa, software varia de empresa para empresa, podendo ser determinados pelos clientes ou por podendo ser determinados pelos clientes ou por imposições regulares.imposições regulares.

Toda mudança no software tem potencial para Toda mudança no software tem potencial para introduzir erros ou criar efeitos colaterais que introduzir erros ou criar efeitos colaterais que propagam erros.propagam erros.

Controlar mudanças contribui para a qualidade Controlar mudanças contribui para a qualidade do software.do software.

A A mediçãomedição é uma atividade que faz parte de é uma atividade que faz parte de qualquer disciplina de engenharia.qualquer disciplina de engenharia.

Page 16: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

16

Atividades SQAAtividades SQA Um objetivo importante da SQA é rastrear a Um objetivo importante da SQA é rastrear a

qualidade de software e avaliar o impacto das qualidade de software e avaliar o impacto das mudanças metodológicas e procedimentais mudanças metodológicas e procedimentais sobre a qualidade de software. Uma sobre a qualidade de software. Uma métrica de métrica de softwaresoftware deve ser coletada. deve ser coletada.

A anotação e manutenção de registros oferecem A anotação e manutenção de registros oferecem procedimentos para a coleta e disseminação de procedimentos para a coleta e disseminação de informações de SQA. Os resultados de revisões, informações de SQA. Os resultados de revisões, auditorias, controle de mudanças e testes auditorias, controle de mudanças e testes devem ser levados ao conhecimento do pessoal devem ser levados ao conhecimento do pessoal de desenvolvimento, tendo-se como base a de desenvolvimento, tendo-se como base a necessidade de conhecimento.necessidade de conhecimento.

Page 17: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

17

REVISÕES DE SOFTWAREREVISÕES DE SOFTWARE

São um “filtro”para o processo de engenharia de software. São um “filtro”para o processo de engenharia de software. Servem para descobrir defeitos que possam ser Servem para descobrir defeitos que possam ser eliminados.eliminados.

Apesar de as pessoas captarem alguns de seus próprios Apesar de as pessoas captarem alguns de seus próprios erros, grandes classes de erros escapam e outras erros, grandes classes de erros escapam e outras pessoas podem identificar mais facilmente.pessoas podem identificar mais facilmente.

Revisão é uma maneira de :Revisão é uma maneira de : Apontar melhorias necessárias ao produto.Apontar melhorias necessárias ao produto. Confirmar as partes de um produto em que uma melhoria Confirmar as partes de um produto em que uma melhoria

não é desejada ou não é necessária.não é desejada ou não é necessária. Realizar um trabalho técnico com uma qualidade mais Realizar um trabalho técnico com uma qualidade mais

uniforme ou, pelo menos, mais previsível.uniforme ou, pelo menos, mais previsível.

Page 18: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

18

Muitos tipos diferentes de revisões podem ser Muitos tipos diferentes de revisões podem ser realizados como parte da engenharia de realizados como parte da engenharia de software.software.

Um encontro informal em torno de máquina de Um encontro informal em torno de máquina de café é uma forma de revisão, se problemas café é uma forma de revisão, se problemas técnicos forem discutidos.técnicos forem discutidos.

Uma apresentação formal do projeto de software Uma apresentação formal do projeto de software a uma platéia de clientes, à administração e ao a uma platéia de clientes, à administração e ao pessoal técnico é uma forma de revisão.pessoal técnico é uma forma de revisão.

REVISÕES DE SOFTWAREREVISÕES DE SOFTWARE

Page 19: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

19

Impacto de Custo de Defeitos de Impacto de Custo de Defeitos de SoftwareSoftware

O objetivo de revisões é descobrir defeitos no O objetivo de revisões é descobrir defeitos no software, de forma que possam ser corrigidos.software, de forma que possam ser corrigidos.

50% a 60% de todos os erros ocorrem durante a 50% a 60% de todos os erros ocorrem durante a fase de desenvolvimento do processo de fase de desenvolvimento do processo de engenharia de software.engenharia de software.

Técnicas de revisão formais são até 75% efetivas Técnicas de revisão formais são até 75% efetivas na descoberta de falhas de projeto.na descoberta de falhas de projeto.

Detectar e suprimir erros reduz o custo dos passos Detectar e suprimir erros reduz o custo dos passos posteriores nas fases que se seguem.posteriores nas fases que se seguem.

Page 20: * Livro: Engenharia de Software * Autor: Roger S. Pressman * Editora Makron Books * Capítulo 17

20

Impacto de Custo de Defeitos de Impacto de Custo de Defeitos de SoftwareSoftware

Exemplo: considere uma série de custos Exemplo: considere uma série de custos que se baseia em dados reais compilados. que se baseia em dados reais compilados. Suponha que um erro descoberto durante a Suponha que um erro descoberto durante a fase de projeto custe 1u para ser corrigido. fase de projeto custe 1u para ser corrigido. Se o erro for descoberto no início dos Se o erro for descoberto no início dos testes, custará 6,5u; durante os testes 15u; testes, custará 6,5u; durante os testes 15u; e após o lançamento, entre 60 a 100u e após o lançamento, entre 60 a 100u

(u = unidade monetária)(u = unidade monetária)