aula 1 qualidade de software

85
Engenharia de Software Informática– Modalidade Subsequente Turma 441 Danilo de Oliveira Gonçalves

Upload: independent

Post on 15-Nov-2023

1 views

Category:

Documents


0 download

TRANSCRIPT

Engenharia de Software

Informática– Modalidade Subsequente

Turma 441

Danilo de Oliveira Gonçalves

Encaminhamentos

• 25/11 – Qualidade Software

• 02/12 – NÃO HAVERÁ AULA

• 09/12 – Teste de Software

• 16/12 – PROVA

• 06/01 – Entrega de resultados / Revisão

• 13/01 – Recuperação (se houver necessidade)

Prof. Msc. Danilo de Oliveira Gonçalves 2

Tópicos da Aula

• Qualidade de Software

• Garantias de Qualidade de Software

Prof. Msc. Danilo de Oliveira Gonçalves 3

QUALIDADE DE SOFTWAREO que significa?

Prof. Msc. Danilo de Oliveira Gonçalves 4

O que é?

• Conjunto de características – que devem ser alcançadas em um determinado

grau • para que o produto atenda às necessidades de seus

usuários

• Garantia de Conformidade (Pressman)– Requisitos funcionais e de desempenho

– Padrões e convenções de desenvolvimentos pré-estabelecidos

– Atributos implícitos que todo o software desenvolvido profissionalmente deve possuir

Prof. Msc. Danilo de Oliveira Gonçalves 5

Importância

• Dependência crescente em sistemas computacionais

• Sistemas computacionais dependem cada vez mais do software

– Mau funcionamento do software pode gerar prejuízos elevados

Prof. Msc. Danilo de Oliveira Gonçalves 6

Importância

O futuro: O que pode acontecer se • bancos perderem milhões • clientes virem saldos de suas contas sumirem de repente• telefones pararem de funcionar • aviões tiverem suas rotas desviadas • vários trens (metrô) sejam colocados no mesmo trilho

Prof. Msc. Danilo de Oliveira Gonçalves 7

O passado: • bug do milênio • avião F-16: voou de cabeça para baixo ao cruzar o equador

devido a falha no sw de navegação • lançamento do ônibus espacial Columbia foi atrasado em

1981 devido a alteração errada em rotina de sincronização • ao menos 2 mortes causadas por overdose de radiação por

causa de uma falha de sw no Therac-25

8

Contextualização

• Globalização – Novas exigências, alta competitividade,

concorrência internacional

• Qualidade como Arma Competitiva – Equiparação com padrões internacionais, garantia

de conformidade do produto, garantia da satisfação do cliente

• No contexto dos Sistemas de Informação – Garantia de conformidade do software com os

requisitos especificados qualidade de software

9

Qualidade: O que é?

• “É atender plenamente os requisitos do cliente”

• “É superar a expectativa do cliente”

“ A totalidade das características de uma entidade

que lhe confere a capacidade de satisfazer às

necessidades explícitas e implícitas”

(NBR ISO 8402)

10

Benefícios da Qualidade• Na visão do fornecedor (ex: equipe interna de TI ou

fornecedor externo – do mercado)– Maior produtividade

– Maior precisão nas estimativas

– Redução de defeitos no produto

– Aumento da confiabilidade do produto

– Menos esforço de re-trabalho

– Menos horas extras de trabalho

– Redução do tempo para atender o mercado

– Redução de custo de desenvolvimento e manutenção

– Maior competitividade

– Maior índice de satisfação do cliente/usuário final

11

Benefícios da Qualidade

• Na visão do contratante

– Auxilia a definição de critérios para seleção e descredenciamento de fornecedores

– Auxilia a definição de processos de acompanhamento do progresso e desempenho dos fornecedores nas etapas de desenvolvimento, entrega e pós-entrega dos produtos

– Auxilia a definição de critérios para avaliação e aceitação dos produtos entregues pelo fornecedor

12

Gurus da Qualidade

• Armand Feigenbaum

• W.Edwards Deming

• Joseph M.Juran

• Karou Ishikawa

• Philip Crosby

• Tom Peters

13

Armand Feigenbaum

• Definiu TQM como um sistema efetivo que integra a qualidade do desenvolvimento, qualidade de manutenção, e esforços de melhoria da qualidade de vários grupos em uma organização

14

Joseph M.Juran

• Melhoria estruturada da qualidade

– Estudar sintomas de defeitos e/ou falhas encontrados

– Desenvolver uma teoria para as causas destes defeitos e/ou falhas

– Testar a teoria até que a causa seja encontrada

– Simular ação remediadora por áreas apropriadas

• Preocupou-se com o impacto nos trabalhadores individuais e no envolvimento e motivação da força de trabalho nas atividades de melhoria da qualidade

15

W.Edwards Deming

• Considerado no Japão o “pai” do controle da qualidade

• Afirmou que qualidade inicia com o alto nível gerencial e é uma atividade estratégica. Enfatiza a necessidade dos métodos estatísticos, participação, educação e proposta de melhoria

16

Karou Ishikawa

• Baseando seu trabalho nos de Deming, Juran e Feigenbaum, Ishikawa criou os conceitos de círculos da qualidade e diagramas de causa-e-efeito.

• Considerou a participação do trabalhador como a chave do sucesso da implementação do TQM.

17

Philip Crosby

• Definiu 4 certezas para o Gerenciamento da Qualidade

– Qualidade significa atendimento aos requisitos.

– Qualidade vem através de prevenção.

– Padrão para desempenho da qualidade e “defeito zero”.

– A medida de qualidade é o preço da não-conformidade.

18

Tom Peters

• Focou no atendimento às expectativas do cliente

CARACTERÍSTICAS DA QUALIDADE

Prof. Msc. Danilo de Oliveira Gonçalves 19

Características da Qualidade

• Modelo de qualidade de McCall 1977

Prof. Msc. Danilo de Oliveira Gonçalves 20

Características operacionais: correção confiabilidade integridade eficiência

Habilidade para ser alterado: manutenibilidadeflexibilidade testabilidade

Adaptabilidade a novos ambientes: portabilidade reusabilidadeinteroperabilidade

Fatores de Qualidade de McCall• Com relação ao uso do produto (características

operacionais): – correção: o quanto um programa satisfaz a sua especificação e

cumpre os objetivos visados pelo cliente

– confiabilidade: o quanto um programa executa a função pretendida com a precisão exigida

– eficiência: a quantidade de recursos computacionais e de código exigida para que um programa execute sua função

– integridade: o quanto o acesso ao software ou aos dados por pessoas não autorizadas pode ser controlado

– usabilidade: o quanto de esforço é necessário para aprender, preparar a entrada e interpretar a saída de um programa

Prof. Msc. Danilo de Oliveira Gonçalves 21

Fatores de Qualidade de McCall

• Com relação às alterações do produto (habilidade para ser alterado):

– manutenibilidade: o quanto de esforço é necessário para

localizar e eliminar erros em um software

– flexibilidade: o quanto de esforço é necessário para

modificar um software

– testabilidade: o quanto de esforço é necessário para testar

um software a fim de garantir que ele execute a função

pretendida

Prof. Msc. Danilo de Oliveira Gonçalves 22

Fatores de Qualidade de McCall

• Com relação às alterações do produto (habilidade para ser alterado):

– portabilidade: o quanto de esforço é necessário para transferir um software de uma plataforma de hardware e/ou software para outra

– reusabilidade: o quanto um software (ou partes dele) pode ser reutilizado em outros software

– interoperabilidade: o quanto de esforço é necessário para se acoplar um software a um outro

Prof. Msc. Danilo de Oliveira Gonçalves 23

A norma ISO/IEC 9126

• Norma ISO/IEC 9126/1991 ou NBR 13596:

– Fornece um modelo de propósito geral

• Define 6 categorias de características de qualidade de software

– Divididas em subcaracterísticas.

– Podem ser avaliadas por um conjunto de métricas.

Prof. Msc. Danilo de Oliveira Gonçalves 24

É uma referência mundial para qualidade de software

• ISO: The International Standardization

Organization, fundada em 1947, coordena o trabalho de 127 países membros para promover a padronização de normas técnicas em âmbito mundial

• IEC: The International Electrotechnical

Commission, fundada em 1906, conta com mais de 50 países e publica normas internacionais relacionadas com eletricidade, eletrônica e áreas relacionadas

Prof. Msc. Danilo de Oliveira Gonçalves 25

Características de qualidade

Funcionalidade o software satisfaz às necessidades explícitas e implícitas do usuário?

Confiabilidade o software, durante um período de tempo, funciona de acordo com as condições pré-estabelecidas?

Usabilidade o software é fácil de usar?

Eficiência o software não desperdiça recursos?

Manutenibilidade o software é fácil de alterar?

Portabilidade o software é facilmente adaptável a diferentes plataformas?

Prof. Msc. Danilo de Oliveira Gonçalves 26

Características e subcaracterísticas

• Funcionalidade: o software satisfaz às necessidades explícitas e implícitas do usuário?

– Adequação: propõe-se a fazer o que é apropriado?

– Acurácia: gera resultados corretos ou conforme acordado?

– Interoperabilidade: é capaz de interagir com os sistemas especificados?

– Conformidade: está de acordo com normas e convenções previstas em leis, normas e descrições similares?

– Segurança de acesso: evita acesso não autorizado, acidental ou deliberado acesso a programa e dados?

Prof. Msc. Danilo de Oliveira Gonçalves 27

Características e subcaracterísticas

• Confiabilidade: o software, durante um período de tempo, funciona de acordo com as condições pré-estabelecidas ?

– Maturidade: com que frequência apresenta falhas?

– Tolerância a falhas: ocorrendo falhas, como ele reage?

– Recuperabilidade: é capaz de recuperar dados após uma falha?

Prof. Msc. Danilo de Oliveira Gonçalves 28

Características e subcaracterísticas

• Usabilidade: o software é fácil de usar?

– Inteligibilidade: é fácil entender os conceitos utilizados?

– Apreensibilidade: é fácil de aprender a usar?

– Operacionalidade: é fácil de operar e controlar a operação?

Prof. Msc. Danilo de Oliveira Gonçalves 29

Características e subcaracterísticas

• Eficiência: o software não desperdiça recursos?

– Comportamento em relação tempo: qual é o tempo de resposta e de processamento?

– Comportamento em relação aos recursos: quanto recurso usa? Durante quanto tempo?

Prof. Msc. Danilo de Oliveira Gonçalves 30

Características e subcaracterísticas

• Manutenibilidade: o software é fácil de alterar?

– Analisabilidade: é fácil encontrar um erro quando ocorre?

– Modificabilidade: é fácil modificar e remover erros?

– Estabilidade: há grandes riscos de erros quando se faz alterações?

– Testabilidade: é fácil testar quando se faz alterações?

Prof. Msc. Danilo de Oliveira Gonçalves 31

Características e subcaracterísticas

• Portabilidade: o software é facilmente adaptável a diferentes plataformas?

– Adaptabilidade: é fácil adaptar a outras plataformas sem aplicar outras ações ou meios além dos fornecidos para esta finalidade no software considerado?

– Capacidade para instalar: é fácil instalar em outras plataformas?

– Capacidade para substituir: é fácil substituir por outro software?

– Conformidade: está de acordo com padrões e convenções de portabilidade?

Prof. Msc. Danilo de Oliveira Gonçalves 32

Qualidade x tipo de software

• Cada tipo de software tem seu próprio requisito de qualidade

• A importância de cada característica depende do tipo de software

Prof. Msc. Danilo de Oliveira Gonçalves 33

Funcionalidade

Confiabilidade

Usabilidade

Eficiência

Manutenibilidade

Portabilidade

Software para locadora de

dvd’s

Sistema embarcado para

satélite

Qualidade x Pontos de Vista

Prof. Msc. Danilo de Oliveira Gonçalves 34

Entraves à qualidade

erro (engano)

Ação humana que produz um resultado incorreto mistake

falhaincorreção em um passo, processo ou definição de

dados; manifestação no software de um engano cometido pelo desenvolvedor

fault (bug)

errodiferença entre o valor obtido e o valor esperado, ou

seja, qualquer estado intermediário incorreto ou resultado inesperado na execução do software

error

defeitoincapacidade de fornecer o serviço conforme

especificadofailure

Prof. Msc. Danilo de Oliveira Gonçalves 35

Porque surgem as falhas?

• Alterações: – alterações degradam a estrutura do software, tornando-o

cada vez mais difícil de alterar

• Tempo: – com o tempo os custos da implementação de alterações

aumenta, e a capacidade do sistema em prestar os serviços esperados diminui

• Complexidade: – difícil de desenvolver: um único desenvolvedor não é

capaz de entender o sistema como um todo – difícil de usar – difícil de entender: código incompreensível, falta de

documentação

Prof. Msc. Danilo de Oliveira Gonçalves 36

Garantia de qualidade

• Definição de um arcabouço para se atingir a qualidade do produto

• Padrão sistemático e planejado de ações que são exigidas para garantir a qualidade

• Visa responder às seguintes questões: – O software atende às características de qualidade

desejadas?

– O desenvolvimento do software foi conduzido conforme os padrões pré-estabelecidos?

– As disciplinas técnicas cumpriram adequadamente seus papéis como parte da atividade de Garantia da Qualidade?

Prof. Msc. Danilo de Oliveira Gonçalves 37

Atividades para garantir a qualidade

• Aplicação de métodos, técnicas e ferramentas

– (desenvolvedores): uso de métodos e ferramentas que ajudem a conseguir maior qualidade nas especificações, projetos, etc.

• Aplicação de padrões

– podem ser usados: para documentos, documentação do código e estilo de codificação (como usar linguagem de programação)

– podem ser determinados pelo cliente, por normas internacionais ou pela empresa de desenvolvimento.

Prof. Msc. Danilo de Oliveira Gonçalves 38

Atividades para garantir a qualidade

• Controle de alterações – toda mudança no software tem potencial para introduzir erros

ou criar efeitos colaterais que propagam erros– controle de mudanças durante desenvolvimento e manutenção

é essencial para garantir a qualidade do software

• Medição – obtenção de métricas para rastrear a qualidade do software e

para avaliar o impacto de mudanças nos métodos e procedimentos usados para desenvolvimento e manutenção

• Anotação e manutenção de registros – manter histórico com resultados de revisões, auditorias,

controle de alterações e outras atividades de garantia de qualidade

– devem ser levados ao conhecimento dos desenvolvedores

Prof. Msc. Danilo de Oliveira Gonçalves 39

40

Garantia da QualidadeX

Controle da Qualidade

• Controle da Qualidade

– Evita que produtos defeituosos sejam entregues aos clientes;

– Natureza reativa.

– Objetiva monitoração de processo, e detecção e correção de defeitos.

– Ex: Inspeções, ensaios e testes.

41

Garantia da QualidadeX

Controle da Qualidade

• Garantia da Qualidade

– Tenta produzir software com uma baixa taxa de defeitos;

– Natureza proativa.

– Definição de procedimentos, padrões, treinamentos.

– Gerência e melhoria de processo.

42

Evolução

Total Quality Management

Garantia da Qualidade

Controle da Qualidade

Inspeção

Detecção de ErroRetificação

Métodos estatísticosDesempenho de processoPadrões de qualidade

Sistemas da QualidadeCusto da qualidadeSolução de problemasPlanejamento da qualidade

Estratégia de qualidade

Grupos de trabalho

Envolvimento de clientes e fornecedores

43

Elementos-chave do TQM

TQM

Melhoria Contínua

Foco no

Cliente

Melhoria de

Processo

Lado Humano

da Qualidade

Métricas, Modelos, Medição e Análise

Stephen Kan

44

Total Quality Management (TQM)

• Aspectos Fundamentais

– Atender as necessidades e expectativas do cliente (a mais importante “parte” da organização).

– Consideração ao cliente e fornecedor interno.

– Envolver todas as pessoas da organização.

– Examinar custos relacionados com a qualidade.

– Desenvolver sistemas e procedimentos que suportem qualidade e melhoria.

– Desenvolver um processo de melhoria contínua.

45

Grupo de SQA

• Grupo de SQA (Software Quality Assurance)– Grupo de Garantia de Qualidade de Software

• Atividades – Preparar um plano de SQA;– Participar da descrição do projeto de software;– Revisar as atividades dos engenheiros de

software;– Documentar e consertar os desvios;– Registrar discordâncias e reportar para o gerente;– Gerenciar mudanças e métricas de software.

46

Custos da Qualidade

• Custos da Prevenção

– Atividades de planejamento e implementação de sistemas da qualidade.

• Custos de Avaliação

– Verificações no processo de produção.

• Custos de Falhas e Correção

– Custos de refazer atividades devido a erros efetuados.

47

Política da Qualidade

• Alinhada aos objetivos da organização.

• Comprometimento em atender os requisitos.

• Melhoria contínua.

• Comunicação e entendimento.

• Análise crítica.

Avaliação da qualidade

• Objetivos:

– aprimorar o processo de desenvolvimento e, em consequência, melhorar a qualidade do produto resultante

– avaliar a qualidade do produto visando emitir documento oficial sobre a qualidade de um software e sua conformidade em relação a uma norma ou padrão

– adquirir um software, com o intuito de escolher o produto mais adequado dentre um conjunto de produtos selecionados

Prof. Msc. Danilo de Oliveira Gonçalves 48

Aprimoramento do processo de Software

• Algumas iniciativas visando melhorias do processo de software: – SEI/CMM (Capability Maturity Model), modelo

desenvolvido pelo Instituto de Engenharia de Software (SEI) da Universidade CarnegieMellon, EUA, visando dar às organizações diretrizes sobre como aprimorar o processo

– ISO/SPICE (Software Process Improvement & CapabilitydEtermination), cujo objetivo é gerar normas ISO/IEC para a avaliação de processos de software

– Norma ISO/IEC 12207, define um processo de ciclo de vida do software

– Norma ISO/IEC 9000-3, apresenta diretrizes para a aplicação da ISO 9001 (voltada para indústria), por empresas que desenvolvem software, para o processo de desenvolvimento e manutenção de software

Prof. Msc. Danilo de Oliveira Gonçalves49

Avaliação da qualidade do produto

• Algumas normas:

– ISO/IEC 9126 (NBR 13596), define as características de qualidade de software que devem estar presentes em todos os produtos

– ISO/IEC 12119, estabelece os requisitos de qualidade para pacotes de software e instruções para teste, considerando esses requisitos

– ISO/IEC 14598-5, define um processo de avaliação da qualidade de produto de software

Prof. Msc. Danilo de Oliveira Gonçalves 50

Avaliação da qualidade do produto

• Como fazer: – Organismos de certificação: no Brasil, para fornecer o

certificado ISO 9000, existem empresas credenciadas pelo INMETRO

– Avaliar in-house: utilizar equipe multidisciplinar com especialistas que se utilizará do software

• Ponto de vista do cliente• Grupo de Garantia da Qualidade do Software

– Contratar empresas para avaliação: existem empresas que fazem avaliação do software

• mas, por não serem credenciadas pelo INMETRO, não emitem certificado oficial.

• Mais acessíveis e mais ágeis que os organismos credenciados.

Prof. Msc. Danilo de Oliveira Gonçalves 51

52

Certificação de Qualidade

• Não basta que a qualidade exista, ela deve ser reconhecida pelo cliente;

• Deve existir uma certificação oficial emitida com base em um padrão;

• As certificações são dadas por instituições competentes;

• Exemplos de certificação:

– Selo SIF de qualidade de produtos alimentícios;

– Selo ABIC de qualidade do café;

– Classificação da rede hoteleira (estrelas).

53

Certificação da Qualidade

• Por que Normalização Internacional?

– Garantir a confiabilidade do produto.

– Reduzir custos e evitar desperdícios e retrabalhos.

– Implementar e utilizar práticas reconhecidas internacionalmente.

– Estabelecer confiança no relacionamento com o cliente.

– Cartão de visita para o mercado internacional.

MPS.BR

• O MPS.BR ou Melhoria de Processos do Software Brasileiro é simultaneamente – um movimento para a melhoria da qualidade

(Programa MPS.BR)

– um modelo de qualidade de processo (Modelo MPS).

• Voltado para a realidade do mercado de pequenas e médias empresas de desenvolvimento de software – baseado nas normas ISO/IEC 12207 e ISO/IEC 15504 e

compatível com o CMMI.

Prof. Msc. Danilo de Oliveira Gonçalves 54

MR-MPS (Modelo de referência para melhoria do processo de software)

• O MPS.BR apresenta 7 níveis de maturidade – (diferencial em relação aos outros padrões de

processo):

• A - Em Otimização;

• B - Gerenciado quantitativamente;

• C - Definido;

• D - Largamente Definido;

• E - Parcialmente Definido;

• F - Gerenciado;

• G - Parcialmente Gerenciado.

Prof. Msc. Danilo de Oliveira Gonçalves 55

Prof. Msc. Danilo de Oliveira Gonçalves 56

MR-MPS (Modelo de referência para melhoria do processo de software)

• Cada nível de maturidade possui suas áreas de processo, onde são analisados:

• processos fundamentais– aquisição;– gerência de requisitos;– desenvolvimento de requisitos;– solução técnica;– integração do produto;– instalação do produto;– liberação do produto.

• processos organizacionais– gerência de projeto;– adaptação do processo para gerência

de projeto;– análise de decisão e resolução;– gerência de riscos;– avaliação e melhoria do processo

organizacional;– definição do processo organizacional;– desempenho do processo

organizacional;– gerência quantitativa do projeto;– análise e resolução de causas;– inovação e implantação na organização.

• processos de apoio– garantia de qualidade;– gerência de configuração;– validação;– medição;– verificação;– treinamento.

Prof. Msc. Danilo de Oliveira Gonçalves 57

Capacidade

• AP 1.1 - O processo é executado;• AP 2.1 - O processo é gerenciado;• AP 2.2 - Os produtos de trabalho do processo são

gerenciados;• AP 3.1 - O processo é definido;• AP 3.2 - O processo está implementado;• AP 4.1 - O processo é medido;• AP 4.2 - O processo é controlado;• AP 5.1 - O processo é objeto de inovações;• AP 5.2 - O processo é otimizado continuamente.

Prof. Msc. Danilo de Oliveira Gonçalves 58

MA-MPS (Método de avaliação para melhoria do processo de software)

• Objetivo:

– orientar a realização de avaliações

– em conformidade com a norma ISO/IEC 15504

– em empresa e organizações que implementaram o MR-MPS

Prof. Msc. Danilo de Oliveira Gonçalves 59

MA-MPS (Método de avaliação para melhoria do processo de software)

• Equipe de avaliação: 3 a 8 pessoas, sendo:– 1 avaliador líder– No mínimo 1 avaliador adjunto– no mínimo 1 técnico da empresa– Duração: 2 a 4 dias;– Validade: 3 anos;

• Estruturação da Avaliação:– Planejar e preparar avaliação

• Plano de Avaliação / Descrição dos indicadores de processo

– Conduzir Avaliação• Resultado da avaliação

– Relatar resultados• Relatório da avaliação

– Registrar e publicar resultados• Banco de dados Softex (portal MPS.BR)

Prof. Msc. Danilo de Oliveira Gonçalves 60

MN-MPS (Modelo de negócio para melhoria do processo de software)

• Instituições que se propõem a implantar os processos MPS.Br (Instituições Implementadoras)

• Credenciam-se através de um documento – onde é apresentada a instituição proponente– contendo seus dados com ênfase na experiência em processos

de software – estratégia de implementação do modelo– estratégia para seleção e treinamento de consultores para

implementação do MR.MPS– estratégia para seleção e treinamento de avaliadores– lista de consultores de implementação treinados no modelo e

aprovados em prova específica– lista de avaliadores treinados no modelo e aprovados em prova

específica

Prof. Msc. Danilo de Oliveira Gonçalves 61

Prof. Msc. Danilo de Oliveira Gonçalves 62

CMMI

• Capability Maturity Model Integration

• Foi criado pelo SEI (Software Engineering

Institute)

• Versão 1.3 (Agosto/2012)

• Capacidade de maturidade de processos de software– Está dividido em 5 níveis de maturidade

• Atestam o grau de evolução em que uma organização se encontra num determinado momento

Prof. Msc. Danilo de Oliveira Gonçalves 63

Níveis CMMI

Prof. Msc. Danilo de Oliveira Gonçalves 64

Descrição dos níveis CMMI• Nível 1 - Inicial: os processos normalmente estão envoltos num caos

decorrente da não-obediência ou ainda, inexistência de padrões

• Nível 2 - Gerenciado: os projetos têm seus requisitos gerenciados neste ponto. Além disso, há o planejamento, a medição e o controle dos diferentes processos

• Nível 3 - Definido: os processos já estão claramente definidos e são compreendidos dentro da organização. Os procedimentos se encontram padronizados, além de ser preciso prever sua aplicação em diferentes projetos

• Nível 4 – Gerenciado: quantitativamente: ocorre o aumento da previsibilidade do desempenho de diferentes processos, uma vez que os mesmos já são controlados quantitativamente

• Nível 5 - Otimizado: existe uma melhoria contínua dos processos.Prof. Msc. Danilo de Oliveira Gonçalves 65

Alvo do CMMI

• A implantação do CMMI é recomendável para grandes fábricas de software

• Implementar os diversos estágios é uma tarefa árdua – não só numa fase inicial, mas também quando se leva em conta

a migração de um nível para outro.

• Invariavelmente exige– vultosos investimentos financeiros, – mudança de postura da organização (principalmente quando a

mesma não contava uma experiência anterior bem-sucedida no gerenciamento de processos).

– consultorias especializadas, • visando apoio na obtenção da certificação CMMI

• Inviável a adoção deste mesmo modelo por pequenas companhias

Prof. Msc. Danilo de Oliveira Gonçalves 66

Prof. Msc. Danilo de Oliveira Gonçalves 67

68

Auditorias

• Auditorias de Certificação

– Inicial

• Completa, abrangendo todo o escopo de certificação.

– De Manutenção

• Periódica, conduzida para determinar a manutenção da auditoria inicial.

– De Re-certificação

• Realizada no final do período de certificação no sentido de re-emitir o certificado para um novo período.

69

Assessments

• “the evaluation or estimation of the nature,

quality, or ability of someone or something”

• Auxilia a organização a melhorar através da identificação de problemas críticos e estabelecimento de ações de melhoria.

• Objetivos– Conhecer como a organização trabalha.

– Identificar principais problemas.

• Foco em revisão e não em auditoria

70

Assessments

• Premissas

– Modelo de processo como base do assessment.

– Confidencialidade.

– Envolvimento da alta gerência.

– Respeito a diferentes pontos de vista.

– Orientação a ações.

71

Assessments

• Estágios

– Preparação

– Avaliação

– Recomendações

• Assessment Report

72

Conclusão

• O principal objetivo da Engenharia de Software (ES) é ajudar a produzir software de qualidade;

• Empresas que desenvolvem software de qualidade são mais competitivas;

• Empresas que utilizam software de alta qualidade podem, em geral, oferecer um melhor serviço a um preço mais competitivo.

73

Qualidade de Software

• O que o cliente quer?– Atendimento aos requisitos especificados

– Defeito zero

– Alto desempenho

– Baixo custo

– Desenvolvimento rápido

– Facilidade de uso

– Eficiência nos serviços associados

– Inovação

74

Qualidade de Software: dificuldades

• Características dos projetos de software

– Complexidade

– Custo focado no conhecimento e no desenvolvimento

– Produção específica e não em série

– Imaturidade da área de Engenharia de Software

75

Qualidade de Software: processo x produto

QUALIDADE DO

PRODUTO DE

SOFTWAREQUALIDADE DO

PROCESSO DE

DESENVOLVIMENTO

76

Certificação do Produto ou do Processo?

• Hoje em dia, a qualidade do processo é mais importante do que a qualidade final do produto;

• Existem normas e padrões tanto para produtos quanto para processos.

77

Qualidade do Processo

• Processo– uma seqüência de passos realizados para um

determinado propósito. (IEEE)– conjunto de recursos e atividades inter-

relacionados que transformam insumos em produtos. (ISO 8402)

• Processo de software – um conjunto de atividades, métodos, práticas e

transformações que as pessoas utilizam para desenvolver e manter software e produtos relacionados. (CMM)

78

Processo de Software

PROCESSO

Ferramentas

Métodos, Procedimentos,

Padrões, Técnicas

Pessoas habilitadas, treinadas,

motivadas

FATORES DE QUALIDADE

• o procedimento que descreve

o método escolhido

• as ferramentas para darem

apoio e facilitarem o trabalho

• pessoas treinadas, que

compreendam e usem o

processo

79

Desenvolvimento do Software REQUISITOS

PRODUTO DE SOFTWARE

Análise Projeto …

verificaçãovalidação

Qualidade do Processo de Software

80

Qualidade do Processo de Software

• Pontos Relevantes– Definição de um ciclo de vida

– Conformidade com requisitos especificados

– Integridade dos produtos do desenvolvimento com os requisitos

– Controle de versões

– Padronização

– Testes e Inspeções

– Planejamento e gerenciamento efetivo

– . . .

81

Melhoria de Processo de Software

• Princípios– Grandes mudanças devem ser iniciadas de cima

pra baixo.– Todos devem ser envolvidos.– Mudanças efetivas devem ser construídas com

base em conhecimento.– Mudanças são contínuas.– Mudanças no processo são incorporadas através

de motivação e esforço.– Melhoria de processo de software requer

investimento.

82

Princípios Básicos da Qualidade de Software

Satisfação do Cliente

Melhoria Contínuade Processos

Redução de Custode Qualidade

Controledo Projeto

83

Conclusão• Qualidade é um conceito complexo, porque significa

diferentes coisas para diferentes pessoas;

• Não há uma simples medida para qualidade de software que seja aceitável para todos os projetos de todas as empresas;

• Apesar dos custos elevados, é importante introduzir sistemas de gerenciamento de qualidade de software, pois permitem um aumento de produtividade, uma melhoria da qualidade do produto final e um aumento da satisfação dos clientes e da própria empresa;

• A falta de consciência de muitas empresas e profissionais que lidam com sistemas complexos tem sido um dos maiores problemas em adotarem uma política de qualidade.

Trabalho próxima aula• 02/12 – não haverá aula• Trabalho para ser feito no horário da aula (ou

quando preferirem)

– Qualquer lugar– Individual– Entregar Impresso (colocar nome, disciplina e data) – Data de entrega: 09/12/2015– Mínimo de 3 páginas excluindo figuras– Vai compor a terceira nota

• Assunto:– Pesquisa sobre Scrum e FDD (Feature Driven

Development)• O que é? Como funciona? Pra que serve? Vantagens e

Desvantagens. Comparativo entre as duas metodologias.Prof. Msc. Danilo de Oliveira Gonçalves

84

Próxima Aula

• 09/12 – Teste de Software

Prof. Msc. Danilo de Oliveira Gonçalves 85