engenharia de software
DESCRIPTION
Aula completa de engenharia de softwareTRANSCRIPT
Introdução
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.”
O que é Qualidade?
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.
Qualidade na Visão Popular
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.
Qualidade na Visão Profissional
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.
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.
Qualidade segundo a NBR 8402Visão Geral
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:
Como Garantir a Qualidade?
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) .
Organizações Normalizadoraspara Qualidade 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.
Evolução dos Conceitos de Qualidade
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.
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.
Definição de Qualidade 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.”
Tipo de Qualidade 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
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).
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.
Principais Normas de Qualidade 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)
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
Qualidade de Produtos 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
Qualidade de Produtos de Software Segundo a Norma
NBR 13596
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
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
• 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
Qualidade de Processo 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
• 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
• Referencial: Padrões de qualidade de processo de software.
– Normas ISO 12207 e 15504
– CMMI
– MPS.BR
Qualidade de Processo de Software
Dúvidas e Perguntas
Próxima Aula
• Trabalho sobre Modelos de Ciclo de Vida Ágil