Engenharia de Software

40
Profª. M.Sc. Larissa Luz Gomes [email protected] Aula 10 Engenharia de Software

description

Aula completa de engenharia de software

Transcript of Engenharia de Software

Page 1: Engenharia de Software

Profª. M.Sc. Larissa Luz Gomes

[email protected]

Aula 10

Engenharia de Software

Page 2: Engenharia de Software

Introdução

Page 3: Engenharia de Software

Introdução

• Qualidade é um dos principais objetivos da

Engenharia de Software.

• Muitos métodos, técnicas e ferramentas são

desenvolvidas para apoiar a produção com

qualidade.

• “Tem-se dado grande importância ao processo

como forma de se garantir um software de

melhor qualidade.”

Page 4: Engenharia de Software

O que é Qualidade?

Page 5: Engenharia de Software

Qualidade

• Termo que pode ser definido de várias formas,

causando mal-entendidos:

1. Qualidade não tem um único sentido;

2. Para cada conceito existem vários níveis de abstração;

3. Visão popular pode ser diferente do seu uso

profissional.

Page 6: Engenharia de Software

Qualidade na Visão Popular

Page 7: Engenharia de Software

Qualidade: Visão Popular

• Termo difícil de definir.

• Qualidade está relacionada ao luxo, classe e

elegância.

• Produtos caros e complexos têm melhor nível

de qualidade.

Page 8: Engenharia de Software

Qualidade na Visão Profissional

Page 9: Engenharia de Software

Qualidade: Visão Profissional

• Qualidade é estar em conformidade com os

requisitos do cliente.

• Qualidade é antecipar e satisfazer os requisitos

do cliente.

• Qualidade é escrever tudo o que se deve fazer e

fazer tudo o que foi escrito.

Page 10: Engenharia de Software

Qualidade: Visão ProfissionalDefinições

Crosby: “Conformidade aos Requisitos”

Requisitos devem ser claramente definidos e não

podem ser mal-interpretados.

Ausência de qualidade = Não conformidade.

Juran: “Conveniência para Uso”

• Considera os requisitos e a expectativa do cliente.

• Um produto deve ter elementos que satisfaçam as

diversas maneiras com que os clientes o utilizarão.

• Parâmetros da conveniência para uso: Qualidade de

Projeto e de Conformidade.

As duas definições são similares embora a segunda dê

mais ênfase às expectativas do usuário.

Page 11: Engenharia de Software

Qualidade segundo a NBR 8402Visão Geral

Page 12: Engenharia de Software

Qualidade: Definição segundo NBR 8402

A totalidade das características de uma

entidade que lhe confere a capacidade de

satisfazer as necessidades explícitas e

implícitas.

• sabor

• aparência

• temperatura

• rapidez no serviço

• preço

• higiene

• valor nutricional

Qualidade :

Ex: Qualidade de um prato de

comida está relacionado com

a satisfação das necessidades:

Page 13: Engenharia de Software

Como Garantir a Qualidade?

Page 14: Engenharia de Software

Certificação de Qualidade

• A qualidade não basta existir, ela deve ser reconhecida pelo cliente.

• A certificação de qualidade oficial é emitida com base em um padrão.

Ex. Certificados

O selo do SIF

O selo da ABIC

A classificação em estrelas dos hotéis

Os certificados de qualidade da série ISO 9000 (padrão de qualidade) .

Page 15: Engenharia de Software

Organizações Normalizadoraspara Qualidade de Software

Page 16: Engenharia de Software

Organizações Normalizadoras

ISO - International Organization for Standardization

IEEE - Instituto de Engenharia Elétrica e Eletrônica

ABNT - Associação Brasileira de Normas Técnicas

Para a emissão de certificado, é preciso a realização de

todo um processo de avaliação e julgamento de acordo com

uma determinada norma.

O INMETRO é orgão do governo responsável pelo

credenciamento das instituições que realizam a certificação.

Page 17: Engenharia de Software

Evolução dos Conceitos de Qualidade

Page 18: Engenharia de Software

Evolução dos Conceitos de Qualidade

• 1900 - Inspeção pós-produção - avalia o produto final.

• 1940 - Controle estatístico da produção.

• 1950 - Avaliação do procedimento de produção.

• 1960 - Educação das pessoas.

• 1970 - Otimização dos processos.

• 1980 - Projeto robusto - avaliação do processo.

• 1990 - Engenharia Simultânea - avalia a própria concepção do produto.

Page 19: Engenharia de Software

Qualidade Aplicada ao Software

Mito: Criar programas é uma arte que não pode seguir regras, normas ou padrões.

Causas:

Produtos de software são complexos.

Software não tem produção em série. Custo está no projeto e desenvolvimento.

Software não se desgasta.

Software é invisível. Sua representação em grafos e diagramas não é precisa.

A Engenharia de Software ainda não está madura, é uma tecnologia em evolução.

Não há um acordo entre os profissionais sobre o que é qualidade de software.

Page 20: Engenharia de Software

Definição de Qualidade de Software

Page 21: Engenharia de Software

Definição de Qualidade de Software

“Conformidade aos requisitos de desempenho e de funcionalidade que foram explicitamente definidos, aos padrões de

desenvolvimento explicitamente documentados e às características implícitas

que são esperadas por todo software desenvolvido por profissionais.”

Page 22: Engenharia de Software

Tipo de Qualidade de Software

Page 23: Engenharia de Software

Tipos de Qualidade de Software

• Para avaliar um Software temos duas visões:

1. Visão da qualidade do Produto de Software

2. Visão da qualidade do Processo de Software

Page 24: Engenharia de Software

Tipos de Qualidade de Software

• Visão que aborda a qualidade do produto

– Funcionalidade

– Confiabilidade

– Usabilidade

– Eficiência

– Manutenibilidade e

– Portabilidade (ISO 9126 e NBR 13596).

Page 25: Engenharia de Software

Tipos de Qualidade de Software

• Visão que aborda a qualidade do processo

– Dos requisitos do usuário à entrega do produto final, existe um processo de desenvolvimento

complexo e dividido em fases, que pode comprometer a qualidade do software.

Mesmo diante de divergências, o fato é que o Processo

de Software influi nas características finais do Produto

de Software.

Page 26: Engenharia de Software

Principais Normas de Qualidade de Software

Page 27: Engenharia de Software

Principais Normas Nacionais e Internacionais de Qualidade de Software

NORMA Características

ISO 9126 Características da qualidade de produtos de software

NBR 13596 Versão brasileira da ISO 9126

ISO 14598 Guias para avaliação de produtos de software, baseados na ISO 9126

ISO 12119 Características de qualidade de pacotes de software (software de prateleiras)

ISO 12207 Norma para a qualidade do processo de desenvolvimento de software.

NBR ISO 9001 Modelo para garantia de qualidade em projeto, desenvolvimento, intalação e assistência técnica (processo)

Page 28: Engenharia de Software

NORMA Características

CMM Modelo da SEI para avaliação da qualidade do processo de desenvolvimento de software. Não é uma norma ISO, mas é muito bem aceita no mercado.

SPICE ISO 15504

Projeto da ISO/IEC para avaliação de processo de desenvolvimento de software. Ainda não é uma norma oficial ISO, mas o processo está em andamento.

ISO

Principais Normas Nacionais e Internacionais de Qualidade de Software

Page 29: Engenharia de Software

Qualidade de Produtos de Software

Page 30: Engenharia de Software

Qualidade de Produtos de Software

• O que é qualidade de Produto de Software?

– É um conjunto de características que devem ser verificadas em um produto de software para que ele seja considerado um produto de qualidade

• Que padrões utilizar?

– Muito se tem pensado sobre isso:

• ISO/IEC 9126 - publicada em 1991.

• NBR 13596 - publicada em agosto de 1996

Page 31: Engenharia de Software

Qualidade de Produtos de Software Segundo a Norma

NBR 13596

Page 32: Engenharia de Software

Qualidade de Produtos de SoftwareNBR 13596

Característica Subcaracterísticas Pergunta chave para a subcaracterística

Funcionalidade (satisfaz as necessidades?)

Adequação

Acurácia

Interoperabilidade

Segurança de acesso

Conformidade

Propõe-se a fazer o que é apropriado?

Faz o que propôs de maneira correta?

Interage com os sistemas especificados?

Evita acesso não autorizado a dados?

Está de acordo com as normas, leis, etc.

Confiabilidade (É imune a falhas?)

Maturidade

Tolerância a falhas

Recuperabilidade

Com que frequência apresenta falhas?

Ocorrendo falhas, como reage?

É capaz de recuperar dados em caso de falhas?

Usabilidade (É fácil de usar?)

Inteligibilidade

Apreensibilidade

Operacionalidade

É fácil entender o conceito e a aplicação?

É fácil aprender a usar?

É fácil operar e controlar

Page 33: Engenharia de Software

Característica Subcaracterísticas Pergunta chave para a subcaracterística

Eficiência (Rápido e enxuto)

Tempo

Recursos

Qual o tempo de resposta, velocid. de execução?

Quanto recurso usa? Durante quanto tempo?

Manutenibilidade (É fácil de modificar?)

Analisabilidade

Modificabilidade

Estabilidade

Testabilidade

É fácil encontrar uma falha, quando ocorre?

È fácil modificar e adaptar?

Há grande risco quando se faz alterações?

É fácil testar quando se faz alterações?

Portabilidade (É fácil de usar em outro ambiente?)

Adaptabilidade

Capacidade para ser instalado

Conformidade

Capacidade para substituir

É fácil adaptar a outros ambientes?

É fácill instalar em outros ambientes?

Está de acordo com padrões de portabilidade?

É fácil usar para substituir outro sistema?

Qualidade de Produtos de SoftwareNBR 13596

Page 34: Engenharia de Software

• Como aplicar a norma ISO 9126/ NBR 13560?

– Para avaliar um software segundo a norma deve-se tentar atribuir valores (notas ou conceitos) a cada uma das subcaracterísticas.

Fato: É difícil aplicar a norma sem se estar familiarizado com o processo de avaliação de software.

Guias para a avaliação da qualidade: descrevem, detalhadamente todos os passos para se avaliar um software.

Qualidade de Produtos de SoftwareNBR 13596

Page 35: Engenharia de Software

Qualidade de Processo de Software

Page 36: Engenharia de Software

Processo de Software = conjunto de ferramentas, métodos e práticas usadas para produzir um software.

• Para melhorar a qualidade no desenvolvimento precisa-se de modelos de processos para a descrição precisa e formal das atividades do ciclo de vida do software.

• Modelo de Processo é representado por um conjunto seqüencial de atividades, objetivos, transformações e eventos que encapsulam estratégias para o cumprimento da evolução do software.

Qualidade de Processo de Software

Page 37: Engenharia de Software

• A implantação de um Programa de Qualidade começa, normalmente, pela definição e implantação de um conjunto de processos.

• O processo de software deve estar documentado, ser compreendido e seguido.

• Questão: Por onde começar? O que considerar na definição de processos?

• Nosso caso: Processos de Software, como atender à ISO 9001?

Qualidade de Processo de Software

Page 38: Engenharia de Software

• Referencial: Padrões de qualidade de processo de software.

– Normas ISO 12207 e 15504

– CMMI

– MPS.BR

Qualidade de Processo de Software

Page 39: Engenharia de Software

Dúvidas e Perguntas

Page 40: Engenharia de Software

Próxima Aula

• Trabalho sobre Modelos de Ciclo de Vida Ágil